摘 要:在對(duì)1553B總線協(xié)議進(jìn)行研究后,結(jié)合EDA技術(shù)提出了基于FPGA的1553B總線編碼和解碼的設(shè)計(jì)方案,包括總線控制器BC、遠(yuǎn)程終端RT,曼徹斯特編碼、解碼的設(shè)計(jì)方案,實(shí)現(xiàn)了信號(hào)的串并轉(zhuǎn)換、碼型轉(zhuǎn)換、奇偶校驗(yàn)等,并最終實(shí)現(xiàn)了BC與RT的可靠通信,1553B信號(hào)編碼和解碼的設(shè)計(jì)過(guò)程都給出仿真結(jié)果和詳細(xì)分析,證明有很強(qiáng)的糾錯(cuò)能力和很高的可靠性。
關(guān)鍵詞:1553B;BC;RT;FPGA
中圖分類號(hào):TP
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1672-3198(2010)12-0290-01
1 原理
1553B總線標(biāo)準(zhǔn)規(guī)定,每條消息最長(zhǎng)32個(gè)字組成,所有的字分為3類:命令字、數(shù)據(jù)字和狀態(tài)字。每類字的一個(gè)字長(zhǎng)為20位,有效信息位是16位,每個(gè)字的前3位為單字的同步頭,而最后1位是奇偶校驗(yàn)位,有效信息(16位)及奇偶校驗(yàn)位在總線上以曼徹斯特碼的形式進(jìn)行傳輸,傳輸一位的時(shí)間為1s(即碼速率1MHz)。同步字頭占3位,先正后負(fù)為命令字和狀態(tài)字,先負(fù)后正為數(shù)據(jù)字。其中16位數(shù)據(jù)位、奇校驗(yàn)位必須按照曼徹斯特碼的形式進(jìn)行傳輸。曼徹斯特編碼的編碼方式二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為1553B總線上傳輸?shù)拇行畔?,并且?duì)這些串行數(shù)據(jù)進(jìn)行曼徹斯特碼編碼,再加上同步頭和奇偶校驗(yàn)碼便構(gòu)成了總線上傳輸?shù)臄?shù)據(jù)。
2 曼徹斯特編解碼器的設(shè)計(jì)
Verilog是一種功能強(qiáng)大的硬件設(shè)計(jì)語(yǔ)言,可用簡(jiǎn)潔的代碼來(lái)進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì)。為此,本文采用Verilog語(yǔ)言來(lái)對(duì)曼徹斯特編解碼器進(jìn)行描述,并用Xilinx ISE 9.2i進(jìn)行編譯,并進(jìn)行綜合,最后采用ModelSim SE 6.1f進(jìn)行仿真。
2.1 解碼器設(shè)計(jì)
Manchester解碼從外部接收不同電壓標(biāo)準(zhǔn)的信號(hào)存入到FPGA內(nèi)部的FIFO中,而后對(duì)接受到的數(shù)據(jù)進(jìn)行解碼,轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)后可交由相應(yīng)的邏輯模塊處理,Manchester這個(gè)功能模塊大概分成三部分可以完成設(shè)計(jì):
(1)采樣模塊該模塊檢測(cè)輸入數(shù)據(jù)的電平跳變,當(dāng)輸入數(shù)據(jù)發(fā)生由低到高或由高到低的電平跳變時(shí),在輸出端產(chǎn)生一周期寬度的脈沖。
(2)解碼時(shí)鐘頻率設(shè)定為8M,因?yàn)橥筋^的高低電平持續(xù)時(shí)間為1.5個(gè)數(shù)據(jù)為也就是1.5個(gè)us,因此同步頭檢測(cè)模塊采用24位字長(zhǎng)的移位寄存器,當(dāng)移位寄存器采到12個(gè)連續(xù)的“1”和12個(gè)連續(xù)的“0”后便可以認(rèn)定同步頭有效,并且判斷出此同步頭是命令字或者狀態(tài)字。相反如果移位寄存器采到12個(gè)連續(xù)的“0”和12個(gè)連續(xù)的“1”之后可以判斷此同步頭是數(shù)據(jù)字。
(3)在數(shù)據(jù)采樣部分,由于曼徹斯特碼在時(shí)鐘周期的中間時(shí)刻都會(huì)有電平的跳變,所以如果對(duì)跳變沿后面1/4個(gè)時(shí)鐘周期的數(shù)據(jù)進(jìn)行采樣,把得到的數(shù)據(jù)進(jìn)行邏輯取反,就可以得到曼徹斯特編碼對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)。采樣計(jì)數(shù)會(huì)產(chǎn)生使能信號(hào),當(dāng)所有的16位數(shù)據(jù)信息和校驗(yàn)位信息都己經(jīng)被接收到之后,使能信號(hào)就會(huì)失效,終止數(shù)據(jù)采樣。16位數(shù)據(jù)會(huì)以并行數(shù)據(jù)的形式放入移位寄存器中。曼徹斯特解碼同時(shí)也實(shí)現(xiàn)了串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的功能。
解碼完成后進(jìn)行奇偶校驗(yàn),接收模塊對(duì)有效序列進(jìn)行奇偶校驗(yàn),如果奇偶校驗(yàn)錯(cuò)誤,則丟棄這個(gè)序列,同時(shí)置位消息差錯(cuò)位,如果奇偶校驗(yàn)正確,則進(jìn)入地址檢測(cè)部分,仿真波形圖如下。
圖(1)
2.2 編碼器設(shè)計(jì)
曼徹斯特編碼模塊接收來(lái)自子系統(tǒng)的16位的1553B協(xié)議規(guī)定的數(shù)據(jù)(包括指令字和狀態(tài)字),并以1Mps的速率對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼,通過(guò)串并轉(zhuǎn)換器把1幀串行數(shù)據(jù)轉(zhuǎn)換成16位的并行數(shù)據(jù),再通過(guò)添加奇偶校驗(yàn)標(biāo)志電路添加1位奇偶校驗(yàn)位標(biāo)志位和通過(guò)異或來(lái)進(jìn)行奇偶檢驗(yàn)并添加奇偶校驗(yàn)位,這個(gè)過(guò)程就是曼徹斯特編碼的過(guò)程,主要有四個(gè)部分:(1)同步頭生成:編碼器會(huì)檢測(cè)數(shù)據(jù)是否到來(lái),然后根據(jù)數(shù)據(jù)的類型產(chǎn)生相應(yīng)的同步頭。(2)奇偶校驗(yàn)位生成:編碼器根據(jù)子系統(tǒng)輸入的16位數(shù)據(jù)產(chǎn)生奇校驗(yàn)位。(3)曼徹斯特編碼生成:16位數(shù)據(jù)和奇校驗(yàn)位組成的17位數(shù)據(jù)被編碼成曼徹斯特碼型。同步頭不進(jìn)行編碼直接加到編碼后的數(shù)據(jù)前面。(4)移位寄存串行發(fā)送:包裝完后的數(shù)據(jù)會(huì)以串行
數(shù)據(jù)的形式發(fā)送出去,所以需要移位寄存器按1MHz的時(shí)鐘頻率發(fā)送到總線上,仿真波形如下:
圖(2)
3 結(jié)束語(yǔ)
目前,1553B總線協(xié)議正被越來(lái)越多的軍用與民用客戶所接受。將外部信息轉(zhuǎn)換成符合1553B協(xié)議數(shù)據(jù)的曼徹斯特碼編碼器也因此漸顯其重要性。利用可編程門陣列器件,可順利實(shí)現(xiàn)這種編碼功能,其高性價(jià)比有利于協(xié)議的推廣應(yīng)用。
參考文獻(xiàn)
[1]胡亞平.基于FPGA的1553B總線控制器的實(shí)現(xiàn)[J].應(yīng)用天地,2008.