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

        ?

        CAN總線和1553B總線通信的FPGA設(shè)計(jì)與實(shí)現(xiàn)

        2021-06-10 03:35:38李宏偉
        關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)報(bào)文

        ■李宏偉

        (太原城市職業(yè)技術(shù)學(xué)院,山西 太原 030027)

        在時(shí)代的推動(dòng)下,各類飛行設(shè)備承擔(dān)的任務(wù)更加紛繁復(fù)雜。為能夠提高數(shù)據(jù)可靠性,系統(tǒng)內(nèi)部往往需要針對(duì)不同的工作設(shè)備選擇合適的總線通訊方式。在發(fā)揮各類總線通信的最大優(yōu)勢(shì)的同時(shí),總線之間的轉(zhuǎn)換傳輸也受到越來越多的關(guān)注。CAN總線與1553B總線均以數(shù)據(jù)傳輸可靠性高、傳輸速度快等優(yōu)點(diǎn),廣泛應(yīng)用于飛行設(shè)備中[1]。對(duì)于兩總線之間的數(shù)據(jù)交互,傳統(tǒng)的解決辦法一般是采用FPGA+ARM雙處理器實(shí)現(xiàn),但國(guó)產(chǎn)ARM芯片價(jià)格高,制板時(shí)周期相對(duì)較長(zhǎng)[2]。系統(tǒng)采用單芯片F(xiàn)PGA實(shí)現(xiàn)CAN總線與1553B總線之間的通信,利用FPGA能夠并行處理數(shù)據(jù)的架構(gòu)以及具有編程靈活的優(yōu)勢(shì),編寫總線底層傳輸協(xié)議,用軟件的方式實(shí)現(xiàn)數(shù)據(jù)的快速轉(zhuǎn)換與傳輸[3]。

        一、系統(tǒng)總體設(shè)計(jì)

        CAN總線與1553B總線之間通訊的系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。系統(tǒng)數(shù)據(jù)流由FPGA控制,參與實(shí)現(xiàn)CAN總線與1553B總線之間通信的模塊主要包括CAN控制器模塊、數(shù)據(jù)轉(zhuǎn)換模塊、1553B協(xié)議模塊和RS422發(fā)送模塊。

        圖1 系統(tǒng)總體設(shè)計(jì)框圖

        CAN總線與1553B總線之間的通信是雙向的,以從1553B總線發(fā)送數(shù)據(jù)至CAN總線為例,該數(shù)據(jù)流的工作流程為:上電初始化所有模塊,F(xiàn)PGA通過編寫1553B底層協(xié)議模塊實(shí)現(xiàn)與1553B總線的數(shù)據(jù)交互,1553B底層協(xié)議模塊作為終端,接收總線發(fā)送來的數(shù)據(jù)并根據(jù)1553B協(xié)議對(duì)數(shù)據(jù)進(jìn)行解析及格式轉(zhuǎn)換,然后通過CAN總線控制器模塊將轉(zhuǎn)換后的數(shù)據(jù)發(fā)送至CAN控制器SJA1000,最后驅(qū)動(dòng)收發(fā)器完成數(shù)據(jù)的上傳,完成單向數(shù)據(jù)流的傳輸。為驗(yàn)證總線間的傳輸無誤,采用RS422發(fā)送模塊將CAN控制器模塊接收到的數(shù)據(jù)發(fā)送至上位機(jī)進(jìn)行顯示,對(duì)比1553B總線上發(fā)送的數(shù)據(jù)與上位機(jī)接收到的數(shù)據(jù),判斷數(shù)據(jù)傳輸?shù)目煽颗c否。從CAN總線發(fā)送數(shù)據(jù)至1553B總線的數(shù)據(jù)傳輸流程與上述類似。

        二、系統(tǒng)模塊化設(shè)計(jì)

        (一)CAN模塊設(shè)計(jì)

        系統(tǒng)CAN模塊主要由CAN控制器及CAN收發(fā)器組成[4],其中CAN控制器通過SPI接口與FPGA進(jìn)行信息交互,然后控制器與收發(fā)器串行相連,CAN收發(fā)器將控制器中的數(shù)據(jù)按照物理層的數(shù)據(jù)協(xié)議進(jìn)行轉(zhuǎn)換并實(shí)現(xiàn)與CAN總線的通信,CAN收發(fā)器與CAN總線通信即實(shí)現(xiàn)單端信號(hào)與差分信號(hào)的相互轉(zhuǎn)換[5]。系統(tǒng)選用NXP公司生產(chǎn)的CAN控制器SJA1000,符合CAN2.0協(xié)議規(guī)范,支持高速數(shù)據(jù)傳輸,速率高達(dá)1Mbps[6]。CAN收發(fā)器選用PCA82C250,它實(shí)現(xiàn)的是數(shù)據(jù)協(xié)議層的轉(zhuǎn)換傳輸,其傳輸速率與CAN控制器一致,最高為1Mbps[7]。系統(tǒng)主頻為80 Mbps,通過分頻模塊后提供給CAN控制器芯片的時(shí)鐘頻率為16 MHz。由于FPGA的I/O口電平為3.3 V,而CAN控制器芯片的工作電壓為5 V[8],因此為實(shí)現(xiàn)兩芯片間的正常通訊,在數(shù)據(jù)進(jìn)行傳輸時(shí),需對(duì)其進(jìn)行電平轉(zhuǎn)換。該模塊的工作原理圖如圖2所示,終端管腳INTE需上拉至3.3 V[9]。

        圖2 CAN模塊工作原理

        (二)數(shù)據(jù)轉(zhuǎn)換模塊設(shè)計(jì)

        數(shù)據(jù)轉(zhuǎn)換模塊主要實(shí)現(xiàn)的是兩種總線協(xié)議下的數(shù)據(jù)位寬的轉(zhuǎn)變。由于1553B總線與CAN總線的數(shù)據(jù)傳輸速率不一致,為避免數(shù)據(jù)在總線交互過程中出現(xiàn)幀丟失或幀錯(cuò)誤的現(xiàn)象,需對(duì)兩總線間的速率進(jìn)行平衡。設(shè)計(jì)采用雙口RAM來解決速率匹配的問題[10],根據(jù)協(xié)議要求,CAN模塊的數(shù)據(jù)輸入輸出寬度均為1 Byte,而1553B協(xié)議模塊的數(shù)據(jù)輸入輸出寬度均為2 Byte。因此,針對(duì)兩個(gè)方向的數(shù)據(jù)流采用2個(gè)RAM來對(duì)數(shù)據(jù)分別進(jìn)行緩存。數(shù)據(jù)由CAN總線傳輸?shù)?553B總線上的雙口RAM緩存設(shè)計(jì)如圖3所示。

        圖3 雙口RAM緩存設(shè)計(jì)

        三、系統(tǒng)軟件設(shè)計(jì)

        (一)CAN模塊設(shè)計(jì)實(shí)現(xiàn)

        1.CAN控制器模塊初始化

        系統(tǒng)加電后,CAN控制器默認(rèn)為復(fù)位狀態(tài)。FPGA需要對(duì)該控制器中的相關(guān)寄存器進(jìn)行初始化配置,實(shí)現(xiàn)對(duì)其內(nèi)部寄存器的配置,為其進(jìn)入正常工作模式做準(zhǔn)備[11]。初始化完成后,配置CAN控制器進(jìn)入工作模式。CAN控制器模塊初始化過程如圖4所示。

        圖4 CAN控制器模塊初始化過程

        2.CAN控制器模塊接收設(shè)計(jì)

        CAN控制器模塊中的接收模塊主要實(shí)現(xiàn)了CAN總線報(bào)文的接收。CAN控制器SJA1000接收CAN總線報(bào)文后產(chǎn)生中斷信號(hào)并使能接收模塊,通過該模塊調(diào)用SPI接口進(jìn)行CAN報(bào)文接收,一幀報(bào)文接收完成后,將接收到的報(bào)文傳遞到接收?qǐng)?bào)文分類模塊中,傳遞完成后通過處理器清除CAN控制器SJA1000芯片中斷使能信號(hào)[12],為下次中斷做準(zhǔn)備。接收?qǐng)?bào)文分類模塊實(shí)現(xiàn)了對(duì)接收到CAN報(bào)文進(jìn)一步判斷與緩存功能。若接收到的報(bào)文ID符合判斷條件時(shí)即與CAN控制器在初始化配置時(shí)所要求的一致,則對(duì)報(bào)文進(jìn)行緩存并傳輸至數(shù)據(jù)格式轉(zhuǎn)換模塊。CAN控制器接收?qǐng)?bào)文的過程如圖5所示。

        圖5 CAN模塊接收?qǐng)?bào)文時(shí)的流程圖

        (二)1553B協(xié)議模塊設(shè)計(jì)實(shí)現(xiàn)

        1.1553B協(xié)議模塊設(shè)計(jì)

        系統(tǒng)中1553B協(xié)議模塊作為終端(RT),主要實(shí)現(xiàn)對(duì)1553B總線(BC)上數(shù)據(jù)的收發(fā)與解析。RT端向BC端數(shù)據(jù)傳輸時(shí),1553B協(xié)議模塊首先需要檢測(cè)同步字,同步字中包含的信息用于區(qū)分字的類型[13]。RT端發(fā)送的數(shù)據(jù)信息經(jīng)過了曼徹斯特編碼,因此在對(duì)接收數(shù)據(jù)進(jìn)行解析前需要對(duì)其進(jìn)行譯碼。譯碼后通過數(shù)據(jù)信息中的同步字判斷該條信息的字類型,若字類型為命令字,需對(duì)同步字之后的相關(guān)數(shù)據(jù)進(jìn)行解析,BC端依照該條命令字執(zhí)行相應(yīng)的操作;若字類型為接收數(shù)據(jù)字命令字,BC端需對(duì)后續(xù)RT端發(fā)送的數(shù)據(jù)字進(jìn)行緩存,并發(fā)送狀態(tài)字至RT端;若字類型為發(fā)送數(shù)據(jù)字命令字,BC端需讀取緩存的數(shù)據(jù)至RT端。1553B協(xié)議模塊設(shè)計(jì)框圖如圖6所示。

        圖6 CAN1553B協(xié)議模塊設(shè)計(jì)框圖

        2.1553B協(xié)議字格式

        依照1553B傳輸協(xié)議,數(shù)據(jù)在總線上傳輸時(shí)其允許最大長(zhǎng)度為32個(gè)字,每個(gè)字包含20 bit[14]。數(shù)據(jù)幀按照不同的類型劃分可以分為命令、狀態(tài)、數(shù)據(jù)。不同類型的字格式見圖7所示。

        圖7 不同類型的字格式

        3.1553B協(xié)議數(shù)據(jù)字收發(fā)

        1553B總線控制器(BC端)與1553B協(xié)議模塊(RT端)通訊時(shí),BC端占有絕對(duì)控制權(quán)。因此,不論RT端接收還是發(fā)送數(shù)據(jù),均由BC端控制。當(dāng)RT端收到接收數(shù)據(jù)的命令字時(shí),根據(jù)該命令字中的信息獲取數(shù)據(jù)字的個(gè)數(shù)情況,判斷RAM接收到的經(jīng)過譯碼后的數(shù)據(jù)字的個(gè)數(shù)是否正確,發(fā)送相應(yīng)的狀態(tài)字給BC端。接收數(shù)據(jù)字流程如圖8所示。

        圖8 1553B協(xié)議模塊接收數(shù)據(jù)字流程

        當(dāng)RT端收到發(fā)送數(shù)據(jù)的命令字時(shí),根據(jù)該命令字中的信息讀取RAM中的指定字節(jié)個(gè)數(shù)的數(shù)據(jù)字,并對(duì)其進(jìn)行曼徹斯特編碼后發(fā)送至BC端。

        四、系統(tǒng)仿真與測(cè)試

        (一)CAN模塊收發(fā)數(shù)據(jù)仿真

        為驗(yàn)證CAN模塊收發(fā)數(shù)據(jù)的正確性,對(duì)收發(fā)模塊均進(jìn)行仿真測(cè)試。當(dāng)CAN總線收發(fā)器檢測(cè)到CAN總線上有數(shù)據(jù)時(shí),產(chǎn)生中斷信號(hào)給CAN控制器,然后將數(shù)據(jù)寫入CAN控制器的接收緩存區(qū)中。接收完數(shù)據(jù)之后,清除中斷標(biāo)志。CAN口接收數(shù)據(jù)仿真圖如圖9所示。

        圖9 CAN口接收數(shù)據(jù)仿真圖

        向CAN總線上傳輸數(shù)據(jù)時(shí),按照CAN協(xié)議幀格式,將數(shù)據(jù)首先發(fā)送至CAN總線控制器的發(fā)送緩存區(qū)中,然后驅(qū)動(dòng)通過SPI接口發(fā)送數(shù)據(jù)至CAN總線上。CAN口發(fā)送報(bào)文仿真圖如圖10所示。

        圖10 CAN口發(fā)送數(shù)據(jù)仿真圖

        (二)1553B協(xié)議模塊仿真

        為驗(yàn)證1553B協(xié)議模塊數(shù)據(jù)收發(fā)的正確性,編寫測(cè)試文件,模擬BC端發(fā)送數(shù)據(jù)給RT端,其中RT端的地址為5'b00111。首先RT端發(fā)送命令字16'h3943,然后發(fā)送3個(gè)數(shù)據(jù)字16'hCA1C,16'hED9B,16'h8C93。BC端通過對(duì)接收到的命令字進(jìn)行解析可知,BC端需要執(zhí)行的操作是接收3個(gè)數(shù)據(jù)字。BC端將接收到的數(shù)據(jù)進(jìn)行緩存之后發(fā)送狀態(tài)字給RT端。RT端通過解析接收到的狀態(tài)字可判斷出數(shù)據(jù)是否被接收。1553B協(xié)議模塊接收數(shù)據(jù)時(shí)的仿真圖如圖11所示。

        圖11 1553B協(xié)議模塊接收數(shù)據(jù)仿真圖

        (三)系統(tǒng)測(cè)試

        為驗(yàn)證系統(tǒng)中兩總線之間的通信正確,分兩部分進(jìn)行測(cè)試。

        1.由1553B總線發(fā)送數(shù)據(jù)字,經(jīng)過1553B協(xié)議模塊、數(shù)據(jù)格式轉(zhuǎn)換模塊,最后通過CAN模塊將數(shù)據(jù)發(fā)送至CAN總線上。1553B總線上發(fā)送命令字16'h3D43,然后發(fā)送 3個(gè)數(shù)據(jù)字16'hC1C3,16'hE1CB,16'hE9D3。采用在線邏輯分析儀SignalTap對(duì)數(shù)據(jù)格式轉(zhuǎn)換模塊的輸入信號(hào)進(jìn)行抓取,如圖12所示。

        圖12 數(shù)據(jù)格式轉(zhuǎn)換模塊的輸入信號(hào)波形

        為可以直觀地觀察到數(shù)據(jù)傳輸?shù)恼_與否,將CAN控制器中緩存的數(shù)據(jù)經(jīng)由RS422發(fā)送模塊發(fā)送至上位機(jī)進(jìn)行顯示,如圖13所示。對(duì)比圖12中的數(shù)據(jù)與串口助手收到的數(shù)據(jù),驗(yàn)證了該數(shù)據(jù)流向的正確性。

        圖13 RS422發(fā)送的CAN總線數(shù)據(jù)

        2.從CAN總線至1553B總線的傳輸驗(yàn)證與(1)相反。采用串口助手發(fā)送數(shù)據(jù)至CAN控制器接收緩存器中,然后通過數(shù)據(jù)格式轉(zhuǎn)換模塊,最后通過1553B協(xié)議模塊將數(shù)據(jù)上發(fā)至1553B總線上。串口助手發(fā)送的數(shù)據(jù)為8'hCA,8'h9A,8'h8A,8'hC1,8'hC2,8'hE 2,8'hF1,8'h22。同樣地,采用 SignalTap對(duì)輸入到1553B協(xié)議模塊的信號(hào)進(jìn)行采集,如圖14所示。對(duì)比串口發(fā)送的數(shù)據(jù)與圖14中的波形,可知該數(shù)據(jù)流向正確。

        圖14 輸入到1553B協(xié)議模塊的信號(hào)采集

        五、結(jié)論

        系統(tǒng)采用FPGA實(shí)現(xiàn)CAN總線與1553B總線之間的通信,充分發(fā)揮FPGA并行處理的優(yōu)勢(shì),代替了ARM處理器實(shí)現(xiàn)1553B的通信,一方面縮減了產(chǎn)品的制造費(fèi)用,另一方面使得產(chǎn)品的研發(fā)時(shí)間變短。經(jīng)系統(tǒng)驗(yàn)證,該設(shè)計(jì)能夠?qū)崿F(xiàn)CAN總線與1553B總線之間的正確通信,滿足了設(shè)計(jì)需求,對(duì)其他總線間的通訊提供了可靠的參考價(jià)值。

        猜你喜歡
        接收數(shù)據(jù)發(fā)送數(shù)據(jù)報(bào)文
        移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
        基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
        汽車電器(2022年9期)2022-11-07 02:16:24
        沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
        CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
        淺析反駁類報(bào)文要點(diǎn)
        低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
        基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
        帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
        使用IPSec安全傳輸數(shù)據(jù)
        單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
        风流熟女一区二区三区| 欧美成人一区二区三区在线观看| 最新亚洲av日韩av二区| 欧美zozo另类人禽交| 日本中文字幕人妻精品| 亚洲av迷人一区二区三区| 免费无码不卡视频在线观看| 暖暖视频在线观看免费| 国产午夜亚洲精品理论片不卡| 蜜桃视频免费在线视频| 美女被内射很爽的视频网站| 人妻少妇精品中文字幕专区| 国产欧美日韩精品专区| 装睡被陌生人摸出水好爽| 免费无遮挡毛片中文字幕| 中文字幕亚洲中文第一 | 久久道精品一区二区三区| 成人综合激情自拍视频在线观看 | 第九色区Aⅴ天堂| 中文字幕在线亚洲精品一区| 欧美巨鞭大战丰满少妇| 日韩成人无码| 久久免费视亚洲无码视频| 一本久道视频无线视频试看| 一本色道久久88—综合亚洲精品| 无码熟妇人妻av影音先锋| 亚洲 自拍 另类 欧美 综合 | 伊香蕉大综综综合久久| 国产成人精品一区二区日出白浆| 亚洲国产精品久久无人区| 亚洲av无码乱码在线观看裸奔| 国产成人综合久久精品免费| 漂亮的小少妇诱惑内射系列| 人妻少妇被粗大爽视频| 国产综合色在线精品| 欧美mv日韩mv国产网站| 精品人妻av区乱码| 日韩少妇人妻精品中文字幕| 日韩av无码中文无码电影| 久久久精品波多野结衣| 国产av91在线播放|