亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的多路機載總線收發(fā)器的設(shè)計與實現(xiàn)

        2014-01-16 09:21:54梁鵬程孟凡鵬
        電子設(shè)計工程 2014年5期
        關(guān)鍵詞:調(diào)試信號檢測

        梁鵬程,趙 平,孟凡鵬

        (西北工業(yè)大學(xué) 陜西 西安 710129)

        在航空電子綜合化系統(tǒng)中,快速、有效的數(shù)據(jù)傳輸對整個航空電子系統(tǒng)的性能有很大的影響,因此數(shù)據(jù)總線被稱為現(xiàn)代航空電子系統(tǒng)的骨架,利用FPGA技術(shù)設(shè)計集成多路ARINC429[1]和422[4]通道的通信芯片,可以有效的提高數(shù)據(jù)通信模塊的處理能力和集成度,降低成本,本文以verilog語言為基礎(chǔ),通過ISE編程,modelsim仿真,仿真無誤后綜合實現(xiàn),用impact將bit文件燒寫到FPGA中,進行硬件調(diào)試,并用chipscope進行分析,為了更加方便的進行調(diào)試,以workbench為平臺建立驅(qū)動。關(guān)于429協(xié)議和422協(xié)議已經(jīng)非常成熟,因此本文主要從硬件調(diào)試的角度介紹多路機載總線收發(fā)器的實現(xiàn)。

        1 FPGA邏輯設(shè)計原理

        很多情況下,我們需要一塊板子既具有429[2-3]功能又具有422數(shù)據(jù)傳輸功能,因此我們將429邏輯和422邏輯[6]建立在一個模塊下,分別給429邏輯和422邏輯分配不同的地址空間,通過不同的地址空間控制429和422協(xié)議的片選信號,同時LOCALBUS數(shù)據(jù)是雙向數(shù)據(jù),429和422數(shù)據(jù)是單向數(shù)據(jù),因此需要加一個雙向緩沖器,實現(xiàn)單向數(shù)據(jù)和雙向數(shù)據(jù)之間的轉(zhuǎn)換。協(xié)議部分已經(jīng)非常成熟,在此不做贅述。

        2 原型驗證板驗證

        2.1 原型驗證板原理

        我們所用的電路板名稱為:MFD-GPM1018。設(shè)計原理如圖1:CPU控制FPGA數(shù)據(jù)的寫入和讀出,F(xiàn)PGA通過429或者422接收到的數(shù)據(jù)按照相應(yīng)的協(xié)議轉(zhuǎn)換之后由cpu讀出,cpu通過Localbus提供FPGA要發(fā)送的數(shù)據(jù)并配置寄存器。

        CPU讀出來的數(shù)據(jù)通過LBC-1-AD00——07到鎖存器把地址和數(shù)據(jù)按一定的控制規(guī)則轉(zhuǎn)換為單獨的地址信號和數(shù)據(jù)信號。LBC-1-AD00——07表示某時刻是地址信號某時刻是數(shù)據(jù)信號。ROM存儲cpu運行過程中的中間數(shù)據(jù)程。H1-8445電平轉(zhuǎn)換,將429數(shù)據(jù)電平由bus總線所要求的電平轉(zhuǎn)換為FPGA需要的3.3V。ASP105885-01是連接器將429、422數(shù)據(jù)連接到GPM調(diào)試版上,進行硬件調(diào)試。MAX3362將串行數(shù)據(jù)轉(zhuǎn)換為差分的形式。M25P16-AVMN6T是FPGA的配置芯片,通過JTAG接口將bit文件加載到FPGA中這樣配置之后,下次上電之后就可以直接將bit文件load到FPGA中而不需重新加載。

        2.2 硬件調(diào)試過程

        在Workbench 開發(fā)平臺vxworks[3]操作系統(tǒng)下,首先連接串口網(wǎng)口從調(diào)試板到PC機,新建超級終端,選擇通信速率為115200,其他都為默認值,網(wǎng)口下載操作系統(tǒng)到cpu中,串口用來控制cpu,串口網(wǎng)口連接好后,連接JTAG接口,(JTAG連接線連USB下載線連到PC機),電源電壓設(shè)置為28V,然后上電,通過調(diào)試板上的電壓轉(zhuǎn)換器轉(zhuǎn)換為5V供FPGA板子使用,上電之后通過IMPACT下載.bit文件到FPGA中,這種配置類型斷電即丟失,下次上電后需要重新下載,同時打開超級終端,建立串口連接,此時vxworks操作系統(tǒng)將會自動啟動,在此操作系統(tǒng)下輸入一些命令控制cpu,常用的就是讀(d)和寫(m)命令,并且打開chipscope,來進行調(diào)試。

        圖1 硬件原理圖Fig. 1 Hardware s

        為了充分驗證邏輯功能的正確性:我們分別進行內(nèi)回環(huán)測試,也就是在邏輯內(nèi)部實現(xiàn)自收自發(fā),然后進行外回環(huán)測試,將板子上發(fā)送接口與接收接口連接起來,實現(xiàn)回環(huán)收發(fā),測試都無誤后進行外部測試,對429協(xié)議采用429的仿真卡進行測試,對422協(xié)議采用串口調(diào)試工具進行測試。

        2.2.1 429測試

        429 的仿真卡發(fā)送429差分數(shù)據(jù),通過FPGA接收,判斷接收到的數(shù)據(jù)是否是發(fā)送的數(shù)據(jù),以此來檢測接收邏輯的正確性。

        429 仿真卡BUStools /ARINC v3.20仿真驗證:

        1)TX setup :設(shè)置發(fā)送通道,波特率、奇偶校驗

        2)DEFINE :ADD new message添加發(fā)送通道,我們需要TXD1、TXD2,設(shè)置發(fā)送數(shù)據(jù)參數(shù):data——BIN設(shè)置32—9位數(shù)據(jù),前8位數(shù)據(jù)通過Label設(shè)置,Label是一個233數(shù)據(jù)類型,2指的是2位,比如設(shè)置為256,則為10101110,映射到發(fā)送的數(shù)據(jù)為0111 0101,即為0x75,最高位為奇偶校驗位,在發(fā)送過程中自動產(chǎn)生。

        圖2 通過串口調(diào)試工具測試422邏輯Fig. 2 Test 422 logic through serial debugging tool

        3)設(shè)置完成后,點擊run,停止發(fā)送的話點擊stop。

        通過超級終端讀出接收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)一致,測試正確。

        2.2.2 通過串口調(diào)試工具進行422測試

        422 的發(fā)送端口和接收端口通過232連到PC機上,PC機通過串口調(diào)試工具發(fā)送一串?dāng)?shù)據(jù),經(jīng)過232轉(zhuǎn)422接收這些數(shù)據(jù),接收到的數(shù)據(jù)在超級終端中打印,檢測接收是否正確,類似的,調(diào)用驅(qū)動422發(fā)送一串?dāng)?shù)據(jù),通過232到PC機通過串口調(diào)試工具看到發(fā)送出來的數(shù)據(jù),檢測發(fā)送的數(shù)據(jù)是否正確。調(diào)試過程中比較關(guān)鍵的一點就是發(fā)送和接收端口波特率要設(shè)置一致。

        如圖2所示,波特率設(shè)置為115 200,奇校驗,數(shù)據(jù)位8位,停止位1位,422發(fā)送數(shù)據(jù),發(fā)送出來的數(shù)據(jù)經(jīng)232顯示到PC機串口接收窗口中,如下圖接收框顯示數(shù)據(jù)。

        如圖2所示,通過串口調(diào)試工具,手動發(fā)送數(shù)據(jù)1、2、3、4、5、6、7、8、9、10,經(jīng)232轉(zhuǎn)422轉(zhuǎn)換為422數(shù)據(jù)形式,再經(jīng)fpga處理。則在超級終端上顯示出接收到的422數(shù)據(jù)個數(shù)以及數(shù)據(jù)。

        2.2.3 驅(qū)動程序

        驅(qū)動相當(dāng)于用戶與底層FPGA邏輯的一個接口,里面包含一些初始化函數(shù)、發(fā)送函數(shù)、接收函數(shù),初始化包括配置寄存器,波特率配置,通道選擇,奇偶校驗設(shè)置等,最后根據(jù)需求直接寫一個測試函數(shù),那么在硬件測試時先通過workbench[5]進行調(diào)試,調(diào)試無誤后,通過wftp下載到cpu中,然后通過超級終端直接調(diào)用測試函數(shù)即可,就不需要之前手動單步通過寫、讀操作來進行配置和測試了。

        429與422通過檢測狀態(tài)位來控制發(fā)送接收的驅(qū)動測試流程如圖3所示。在上述測試過程中,發(fā)送一個數(shù)據(jù)則接收一個數(shù)據(jù),僅僅檢測到了接收與發(fā)送功能上的正確性??紤]到在應(yīng)用過程中,并非發(fā)送一個數(shù)據(jù)接收完再發(fā)送一個數(shù)據(jù),比如發(fā)送若干個數(shù)據(jù)之后,此時才開始進行接收,那么在這種情況下,接收fifo緩存中將存在若干個數(shù)據(jù),因此引入fifo的data_count計數(shù),表示此時緩沖中儲存有多少個數(shù)據(jù),然后依次把這些數(shù)據(jù)給讀出來,這種情況下,也存在溢出的可能性,因此引出溢出狀態(tài)位。

        圖3 檢測狀態(tài)位來控制發(fā)送接收的驅(qū)動測試流程Fig. 3 Driving test process by detecting status bit to control the transmission and reception

        圖4 引入fifo計數(shù)和溢出狀態(tài)檢測的驅(qū)動測試流程Fig. 4 Driving test process by introducing fifo overflow state detection and counts

        改進后引入fifo計數(shù)和溢出狀態(tài)檢測的驅(qū)動測試流程如圖4所示。

        3 調(diào)試過程中遇到的關(guān)鍵問題及分析

        調(diào)用驅(qū)動對422進行外回環(huán)測試0通道發(fā)0通道收1通道發(fā)1通道收,這時出現(xiàn)問題:當(dāng)發(fā)送多個數(shù)據(jù)接收多個數(shù)據(jù),或者多次測試時會出現(xiàn)接收數(shù)據(jù)錯誤或者未接收到數(shù)據(jù)的現(xiàn)象,但是通過超級終端單步測試確是是正確的。用chipscope[7]抓信號,發(fā)現(xiàn)接收數(shù)據(jù)時,會出現(xiàn)接收完數(shù)據(jù)后,fifo非空的狀態(tài),正常應(yīng)是空狀態(tài),這樣就把之前的數(shù)據(jù)再次接收了一遍,抓到的錯誤如圖5,其中test是我們?yōu)榱藴y試方便加的一個參數(shù)用來檢測DAT變化,因為DAT是雙向數(shù)據(jù)無法抓到。

        圖5 test數(shù)據(jù)出錯Fig. 5 Test data error

        分析原因是由于發(fā)送的數(shù)據(jù)被接收后,再次發(fā)送數(shù)據(jù)前檢測狀態(tài)位未來得及告便,導(dǎo)致錯誤,于是在檢測狀態(tài)位后面加延遲taskdelay(1),測試正確,但是與之而來的問題是這樣大大影響了波特率,因為1代表1/60ms,而波特率是ns級的,于是用一個讀寄存器操作來代替這個延遲,讀一個寄存器狀態(tài)需要的時間大約為us級,具有一定的延時但性能又優(yōu)于taskdelay,并且讀寄存器也不會影響其他的正常功能,至此以為問題解決了。但是后來為了完善功能,在邏輯中添加count,修改驅(qū)動進行測試,發(fā)現(xiàn)打印到超級終端上的fifo計數(shù)不正確,發(fā)送一個數(shù)計數(shù)卻是31,繼續(xù)發(fā)送一個逐個計數(shù)為61,91….用chipscope抓信號發(fā)現(xiàn)在tf_push有效時(tf_push控制發(fā)送fifo的寫信號),同一數(shù)據(jù)輸入到fifo了31次,根據(jù)邏輯tf_push在寫信號有效以及地址是發(fā)送緩沖地址且此時是正常工作狀態(tài)時就有效,那么根據(jù)chipscope抓到的,發(fā)現(xiàn)在一個地址有效,寫信號有效的周期內(nèi),tf_push持續(xù)有效,持續(xù)計數(shù)就說明此時有效了多個時鐘周期,每個時鐘周期數(shù)據(jù)寫入到發(fā)送fifo中一次,但是我們期望的是寫信號有效地址有效一個周期內(nèi),數(shù)據(jù)只寫入一次,因此我們修改邏輯,使tf_push有效的周期縮短為一個時鐘周期,同時根據(jù)這個問題,也判斷了之前接收數(shù)據(jù)總出錯,出現(xiàn)一個數(shù)據(jù)接收兩次的現(xiàn)象,需要加適當(dāng)?shù)难訒r才不會出錯的原因正是如此。 明白這些之后,我們又把驅(qū)動中檢測狀態(tài)位與接收之間的延時去掉,再次測試,這次果如預(yù)期的一樣不再出錯,至此才找到了根本原因。對于這個問題Modelsim是發(fā)現(xiàn)不了的,因為Modelsim仿真時輸入激勵比如寫信號wr_n有效設(shè)置的就是一個時鐘周期,因此chipscope能夠發(fā)現(xiàn)modelsim發(fā)現(xiàn)不了的問題,這也就是硬件調(diào)試的功效。

        圖6 修改前tf_push發(fā)送寫信號Fig. 6 Transmit write signal tf_push before amendment

        修改前tf_push如圖6所示。

        修改后的tf_push,持續(xù)一個時鐘周期,如圖7所示。

        圖7 修后tf_push發(fā)送寫信號Fig. 7 Transmit write signal tf_push aftere amendment

        針對這個問題,我們總結(jié)寫底層邏輯時控制讀信號和寫信號使其持續(xù)時間為一個時鐘周期是非常有必要的,可以有效避免數(shù)據(jù)重復(fù)讀入和寫出。

        4 結(jié)束語

        文中以FPGA為基礎(chǔ),主要介紹了多路422協(xié)議429協(xié)議總線完整的FPGA硬件調(diào)試,涉及硬件原理 、調(diào)試過程、調(diào)試中用到的工具、驅(qū)動程序以及對調(diào)試過程中遇到問題的分析方法,經(jīng)過這一系列的調(diào)試無誤,此部分將可以接受檢驗,實現(xiàn)穩(wěn)定的數(shù)據(jù)通訊功能。最后將邏輯固話到FPGA中,上電自啟動,自此我們完成了完善的多路機載總線收發(fā)器的設(shè)計和實現(xiàn)。

        [1] 張新.基于FPGA的多通道ARINC429通信芯片設(shè)計[J].航空電子技術(shù),2008,39(1):46-52.ZHANG Xin. Design of Multi-Channel ARINC 429 Communication Chip Based on FPGA[J].Avionics Technology,2008,39(1):46-52.

        [2] 力榕.航空用ARINC429總線收發(fā)系統(tǒng)設(shè)計與實現(xiàn)[J].計算機測量與控制,2005,13(9):970-972.LI Rong. Design and Implementation of a arinc429 Bus Transmit-receive System[J].Computer Measurement & control,2005,13(9):970-972.

        [3] Altera Corporation. FLEX 10K Embedded Programmable Logic Device Family Data Sheet[R]. September 2003

        [4] 李精華.基于VHDL的串行通信接口UART設(shè)計[J].桂林航天工業(yè)學(xué)院學(xué)報,2011(2):127-128.LI Jing-hua. Design of serial communication interface UART based on FPGA[J].Journal of Guilin Colleage of Aerospace technology, 2011(2):127-128.

        [5] 段培賢.基于vxworks的網(wǎng)絡(luò)與串口通信裝換[J].魚雷技術(shù),2009,17(6):58-61.DUAN Pei-xian.Communication conversion between UART and ethernet based on VxWorks[J].Torpedo Technology,2009,17(6):58-61.

        [6] 郭樹濤.基于FPGA的串口通訊設(shè)計[J].北京電子科技學(xué)院學(xué)報,2006,14(2):74-78.GUO Shu-tao. Serial communication based on FPGA[J].journal of Beijing Electronic Serial Science and Technology Institute,2006,14(2):74-78.

        [7] 萬翔.ChipScope Pro在FPGA調(diào)試中的應(yīng)用[J].計算機與網(wǎng)絡(luò),2005(21):58-59.WAN Xiang. The application of ChipScope Pro in FPGA debug[J].Computer & Network, 2005(21):58-59.

        猜你喜歡
        調(diào)試信號檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        基于FPGA的多功能信號發(fā)生器的設(shè)計
        電子制作(2018年11期)2018-08-04 03:25:42
        基于航拍無人機的設(shè)計與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        FOCAS功能在機床調(diào)試中的開發(fā)與應(yīng)用
        無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        小波變換在PCB缺陷檢測中的應(yīng)用
        色婷婷精品大在线视频| 日韩成人无码一区二区三区| 免费视频一区二区| 大肥婆老熟女一区二区精品| 国产乱淫h侵犯在线观看| 亚洲精品国精品久久99热| 一二三四视频社区在线| 久久亚洲高清观看| 亚洲精品色播一区二区| 公厕偷拍一区二区三区四区五区| 亚洲色成人www永久在线观看 | 国产精品无需播放器| 久青青草视频手机在线免费观看| 按摩师玩弄少妇到高潮av| 真人做人试看60分钟免费视频| 最新亚洲人成无码网www电影| 蜜芽尤物原创AV在线播放| 亚洲中文字幕一区二区在线| 国产精品538一区二区在线| 又爆又大又粗又硬又黄的a片| 欧美日韩精品一区二区三区高清视频| 亚洲天堂在线播放| 91国产自拍视频在线| 日产精品高潮一区二区三区5月| 国产亚洲日韩在线一区二区三区| 一区一级三级在线观看| 福利视频自拍偷拍视频| 午夜福利理论片在线观看播放| 国产成年无码v片在线| 亚洲嫩模高清在线视频| 日本精品中文字幕人妻| 一色桃子中文字幕人妻熟女作品| 亚洲欧美精品伊人久久| 国产精品自拍首页在线观看| 国产精品成人一区二区不卡| 日本japanese丰满多毛| 色爱无码A V 综合区| 美女射精视频在线观看| 人人鲁人人莫人人爱精品| 成年男女免费视频网站| 一级做a爱视频在线播放|