基于FPGA的1553B總線接口設(shè)計(jì)
2.1 數(shù)字發(fā)送器
(1)DSP將要發(fā)送的數(shù)據(jù)依次送到發(fā)送FIFO中進(jìn)行存儲(chǔ),硬件將根據(jù)狀態(tài)機(jī)運(yùn)行情況產(chǎn)生FIFO讀時(shí)鐘讀取數(shù)據(jù)并送到同步頭產(chǎn)生器。
(2)根據(jù)要發(fā)送的是狀態(tài)/命令字或數(shù)據(jù)字在同步頭產(chǎn)生器中加上相應(yīng)的同步頭,若是狀態(tài)/命令字則在有效數(shù)據(jù)前加上3個(gè)二進(jìn)制位,先正后負(fù),正負(fù)電平各占1.5bit ,數(shù)據(jù)字則相反。
(3)奇偶校驗(yàn)器通過將有效數(shù)據(jù)位的各位進(jìn)行異或即可實(shí)現(xiàn)。
(4)硬件將經(jīng)過奇偶校驗(yàn)器的數(shù)據(jù)送到曼徹斯特編碼器進(jìn)行編碼,編碼器的實(shí)現(xiàn)相對(duì)較簡單。編碼時(shí)鐘采用2MHz,有效數(shù)據(jù)位和奇偶校驗(yàn)位都采用曼徹斯特碼的形式發(fā)送,加上同步頭共40bit二進(jìn)制位,使用2MHz的時(shí)鐘發(fā)送到1553B數(shù)據(jù)總線上。
在數(shù)字發(fā)送部分控制狀態(tài)機(jī)是保證時(shí)序的關(guān)鍵所在,狀態(tài)機(jī)不僅控制發(fā)送FIFO的時(shí)鐘,同時(shí)也有效地輸出編碼的觸發(fā)信號(hào)。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移如圖3所示。
圖3 狀態(tài)轉(zhuǎn)移圖
FPGA中最重要的部分是發(fā)送器和接收器,現(xiàn)將這兩部分的工作過程做簡要分析。
2.1 數(shù)字發(fā)送器
(1)DSP將要發(fā)送的數(shù)據(jù)依次送到發(fā)送FIFO中進(jìn)行存儲(chǔ),硬件將根據(jù)狀態(tài)機(jī)運(yùn)行情況產(chǎn)生FIFO讀時(shí)鐘讀取數(shù)據(jù)并送到同步頭產(chǎn)生器。
(2)根據(jù)要發(fā)送的是狀態(tài)/命令字或數(shù)據(jù)字在同步頭產(chǎn)生器中加上相應(yīng)的同步頭,若是狀態(tài)/命令字則在有效數(shù)據(jù)前加上3個(gè)二進(jìn)制位,先正后負(fù),正負(fù)電平各占1.5bit ,數(shù)據(jù)字則相反。
(3)奇偶校驗(yàn)器通過將有效數(shù)據(jù)位的各位進(jìn)行異或即可實(shí)現(xiàn)。
(4)硬件將經(jīng)過奇偶校驗(yàn)器的數(shù)據(jù)送到曼徹斯特編碼器進(jìn)行編碼,編碼器的實(shí)現(xiàn)相對(duì)較簡單。編碼時(shí)鐘采用2MHz,有效數(shù)據(jù)位和奇偶校驗(yàn)位都采用曼徹斯特碼的形式發(fā)送,加上同步頭共40bit二進(jìn)制位,使用2MHz的時(shí)鐘發(fā)送到1553B數(shù)據(jù)總線上。
在數(shù)字發(fā)送部分控制狀態(tài)機(jī)是保證時(shí)序的關(guān)鍵所在,狀態(tài)機(jī)不僅控制發(fā)送FIFO的時(shí)鐘,同時(shí)也有效地輸出編碼的觸發(fā)信號(hào)。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移如圖3所示。
3 功能仿真及試驗(yàn)結(jié)果分析
在研究分析了1553B總線接口模塊的功能及系統(tǒng)設(shè)計(jì)后,在實(shí)驗(yàn)室經(jīng)過PCB設(shè)計(jì)投產(chǎn)了兩塊板卡,搭建了實(shí)驗(yàn)平臺(tái)并進(jìn)行功能驗(yàn)證。由于實(shí)驗(yàn)室條件有限,功能驗(yàn)證的設(shè)計(jì)流程是將發(fā)送模塊DSP發(fā)送的數(shù)據(jù)經(jīng)過FPGA處理,得到曼徹斯特編碼,并經(jīng)過模擬收發(fā)器、耦合變壓器后連接到接收模塊的輸入端,信號(hào)經(jīng)過模擬電路部分送到FPGA解碼后送給DSP處理。
在總線接口模塊中,曼徹斯特編解碼是實(shí)現(xiàn)功能的核心部分,所以編碼數(shù)據(jù)和解碼數(shù)據(jù)是進(jìn)行功能驗(yàn)證時(shí)觀察的重點(diǎn)。為了觀察曼徹斯特編解碼是否正確,這里采用Xilinx的Chip Scope邏輯分析儀觀察數(shù)據(jù),serial_data是發(fā)送模塊經(jīng)過編碼部分處理后的串行數(shù)據(jù),rx_dword是接收模塊中經(jīng)過解碼部分得到的16bit數(shù)據(jù),對(duì)比這兩個(gè)數(shù)據(jù)的波形是否滿足曼徹斯特編碼標(biāo)準(zhǔn)即可驗(yàn)證設(shè)計(jì)的準(zhǔn)確性,用Chip Scope捕捉到的波形如圖4所示。
圖4 調(diào)試波形圖
從上面的波形圖中可以看到,busy信號(hào)在編碼的過程中一直為高電平,在編碼結(jié)束后的一個(gè)編碼時(shí)鐘周期內(nèi)為低電平。rx_dval信號(hào)在解碼結(jié)束的一個(gè)解碼時(shí)鐘周期內(nèi)為高電平,說明此時(shí)解碼結(jié)束,接收到的數(shù)據(jù)rx_dword為5678,對(duì)比發(fā)送的數(shù)據(jù)和編碼數(shù)據(jù)serial_data,說明編解碼均正確。
同時(shí),為了觀察DSP發(fā)送的數(shù)據(jù)與接收模塊DSP接收的數(shù)據(jù)是否正確,提高測試數(shù)據(jù)的直觀性,在這里加上串口調(diào)試助手,通過RS232總線傳輸接收數(shù)據(jù),于PC機(jī)平臺(tái)上運(yùn)行串口調(diào)試助手觀察接收數(shù)據(jù)。
在分析了1553B總線接口模塊的功能后介紹了總線接口部分的FPGA系統(tǒng)設(shè)計(jì),在搭建的平臺(tái)上進(jìn)行了功能驗(yàn)證,實(shí)驗(yàn)過程中獲得的數(shù)據(jù)表明了論文中設(shè)計(jì)的接口模塊的功能達(dá)到了預(yù)期目標(biāo)要求。
評(píng)論