魏祎 許永輝
摘 要: ARINC429在航空航天等領域應用廣泛,RS 232是常用的計算機與外部設備接口。作為某軍事領域電子系統測試平臺的一部分,設計了基于PXI總線的ARINC429和RS 232的專用通訊模塊。以DSP和FPGA聯合作為控制器,實現通訊模塊的PXI接口,基于專用的協議芯片DEI1016實現ARINC429通訊,由FPGA為協議芯片提供時序和數據的緩存FIFO,并在FPGA中集成了RS 232協議編解碼。測試表明,該通訊模塊能實時可靠靈活地收發數據,實現對被測電子系統多路ARINC429和RS 232總線的測試。
關鍵詞: PXI; ARINC429; RS 232; 通訊模塊
中圖分類號: TN919?34 文獻標識碼: A 文章編號: 1004?373X(2014)17?0086?04
Abstract: Bus ARINC429 is widely used in the fields of aviation and aerospace. RS 232 is a commonly?used interface between a computer and external devices. A specific communication module for ARINC429 and RS 232 based on PXI bus was designed as a part of a military?purpose electric equipment automatic test system. The DSP and FPGA are combined as the controller to realize PXI bus interface of communication module. ARINC429 bus communication is realized on the basis of specific protocol chip DEI1016. The time sequence and data buffer FIFO is provided for the protocol chip by FPGA. The RS 232 protocol CODEC is integrated into FPGA. The test results indicate that the communication module can receive and transmit data reliably and flexibly. The testing of multi?channel ARINC429 and RS 232 buses of the electronic system under test was achieved.
Keywords: PXI; ARINC429; RS 232; communication module
0 引 言
ARINC429總線協議由美國航空電子工程委員會(Airline Engineering Committee)于1977年提出,目前是民用及軍用飛行設備上的常用總線[1]。ARINC429總線為串行差分總線,單向傳輸,兩個設備間需要雙向傳輸時則需要兩個通道獨立傳輸,有高速和低速兩種傳輸方式,高速信號為100 Kb/s,低速信號為12~14.5 Kb/s,具有可靠性高、結構簡單、抗干擾性強等特點。
對于實現微處理器對外的ARINC429接口,主要有兩種方式,一種方法采用FPGA芯片內部實現協議編解碼,實現串/并轉換[1],開發成本低,但難度較高,開發周期長,且可靠性相對較低,可能出現未知問題;另一種方法采用專用的ARINC429協議芯片DEI1016,可以在串行的差分信號和16位的并行信號之間進行轉換,并自動進行奇偶校驗,技術成熟,只需設計者提供合適的邏輯和時序進行控制,能實現協議的可靠傳輸。
某個與軍事領域合作的電子信號測試平臺基于PXI總線,現要求提供其中一個專用模塊,包含多路ARINC429收發通道,兩路RS 232收發通道進行測試。本文將對這一模塊的主要技術進行闡述。國外已陸續由PXI產品推出,研制此基于PXI總線的ARINC429通訊模塊具有重要的實際應用意義[2]。
模塊采用TI公司的TMS320DM642作為主處理器,ARINC429總線通訊基于協議芯片DEI1016,由Altera公司的Cyclone Ⅲ系列FPGA芯片為其提供時序和數據緩存FIFO。軟件方面,基于LabWindows/CVI編寫上位機應用程序,可通過上位機接收到的數據分析被測設備是否能正常工作。
1 總體方案設計
采用TMS320DM642 DSP作為控制芯片,通過PXI接口,實現與上位機的通信,64 MB RAM可以緩存數據,外接Cyclone Ⅲ FPGA和4路ARINC429接收通道,2路發送通道,采用兩個DEI1016實現,由FPGA給出DEI1016需要的邏輯和時序,并對每一路接收通道給出256×16 b的緩存FIFO。總體方案框圖如圖1所示。
FPGA的輸出信號為3.3 V TTL電平,DEI1016除了兩路接收通道允許±10 V的差分電平,其余數據總線和控制信號也為TTL電平,可以與FPGA直接互聯。
DEI1016的輸入輸出包括以下幾類信號:時鐘信號CLK,需要由外部提供1 MHz時鐘信號,兩路ARINC429差分信號接收通道,一路發送通道,16位的并行數據總線,復位信號MR,輸入控制字信號LDCW,發送數據控制信號TXR,ENTX,LD1,LD2,接收數據控制信號DR,OE,SEL等,DEI1016與FPGA的連接如圖3所示。
需要發送的并行格式數據由DEI1016轉化為符合ARINC429協議要求的串行信號后由發送通道輸出,為TTL電平,不能滿足429協議電平要求的+10 V差分信號要求,需要經過電平轉換才能發送到總線上。BD429是專用的ARINC429總線驅動芯片,也可用于ARINC571,ARINC575,RS 422等總線[4],支持TTL和CMOS輸入,可通過編程設置輸出差分信號電壓范圍,支持高速和低速ARINC429通信,常與DEI1016配合用于ARINC429接口。
FPGA中的ARINC429固件程序包括片選、時鐘、寫控制字、發送、接收等部分。
DEI1016在FPGA的時序控制下進行傳輸,與FPGA在同一時鐘域內,因此1 MHz時鐘信號通過FPGA內部PLL分頻50 MHz時鐘產生并提供。
DEI1016的正常工作之前需要先低電平復位,然后向控制寄存器內輸入控制字,控制字一共16位,包括設置ARINC429字長為25位或32位、奇偶校驗位、是否啟動自檢模式、傳輸速率(高速、低速)等。控制字發送到數據總線上,在由FPGA給出的LDCW信號上升沿時鎖存到DEI1016中。例如,設置DEI1016以高速傳輸(不使用自檢模式),32位字長,則控制字為0x0020。
將符合協議編碼要求的串行數據通過發送通道發送出去,需要FPGA提供如下的時序:當DEI1016空閑,可以發送數據時,則輸出TXR為高電平,讀取該信號若不為高證明可以傳輸,使能發送模塊開始工作,在計數器計數控制下在特定時間輸出LD1為低電平,數據總線上發送高位16位數據,輸出LD2為低電平,發送低位16位數據,并始終輸出ENTX為低電平。
ARINC429發送一個數據有32位,分為高位16位和低位16位。其中1~8位為地址標號位,主要用于確定字中的數據類型;9~10位為信息源/目標識別位(SDI),表明物理量從何而來;11~28位為數據位;29位為符號位,用于表示方位;30~31位為SSM位,定義硬件設備條件、操作方式、數據內容的有效性;第32位為校驗位[5]。對于控制芯片發送給DEI1016的并行數據,協議芯片會進行如下轉換,如圖4所示[4]。
接收模塊包括接收控制邏輯和FIFO。當總線上收到串行數據時,DEI1016輸出DR信號為低電平,通知控制器可以進行接收數據。接收控制邏輯的設計與發送邏輯類似,在計數器計數控制下依次輸出波形OE和SEL。FIFO由Quartus的MegaWizard工具自動生成。
2.2 RS 232硬件設計和編解碼邏輯
本方案選擇在FPGA內部實現RS 232通信數據的串/并轉換。RS 232是一種異步串行總線,單端通訊,適合于傳輸速率在0~20 000 b/s范圍內的通信[6],常用于計算機接口與近端外部終端設備的連接。一般使用DB?25或DB?9連接器連接總線和終端設備,本方案中使用DB9連接器。協議電氣特性規定-3~-15 V表示邏輯1, +3~+15 V表示邏輯0。采用MAX232完成TTL電平到標準電平之間的轉換,用光耦HCL2631和HCL263L隔離不同電源和參考地的FPGA和MAX232[7]。
FPGA內部的RS 232固件程序包括波特率設置、發送、接收部分。
程序的頂層包含控制寄存器等,對DSP發送的命令和數據進行鎖存,并根據選擇通道啟動底層模塊。發送或接收之前先進行復位,清空所有FIFO,寄存器內為初始值;然后對波特率、控制字等進行設置,波特率可設置為2 400 b/s,4 800 b/s,9 600 b/s等,默認為9 600 b/s。根據波特率分頻11.059 2 MHz時鐘生成發送時鐘。
發送編碼部分包括緩存FIFO和串/并轉換邏輯,將DSP發送的并行數據自動存入FIFO,當FIFO不為空且總線空閑時,讀出其中的數據,根據設置的波特率生成發送時鐘s_clk,在s_clk的觸發下將8位的并行數據每一位依次發送到單端的總線上,轉為串行數據,并根據需要在最后一位加上奇偶校驗。
接收功能模塊與發送編碼部分的原理類似,總線上收到串行數據時,由狀態機將串行數據轉為并行數據,自動存入FIFO,當DSP空閑時將FIFO中的數據讀出。4 測試結果
利用上位機應用程序驗證發送數據與接收數據是否一致。對4個ARINC429通道、多種波特率下的2個RS 232通道進行單幀數據收發測試,發送與接收的數據一致;對所有通道進行大量數據的連續收發測試,所有結果均正確返回,長時間工作沒有出現誤碼,證明該模塊硬件電路設計沒有問題,FPGA內編寫的邏輯正確,以及所編寫的DSP程序、儀器驅動函數、上位機應用程序均能穩定可靠地工作。
5 結 語
本文設計了一種基于PXI總線,以DSP和FPGA為控制核心,基于DEI1016的ARINC429通訊模塊,并包含RS 232通訊。設計了硬件電路,并根據DEI1016的時序要求編寫了控制邏輯,根據RS 232的協議要求在FPGA內集成了編解碼邏輯,編寫了DSP程序和基于LabWindows/CVI的上位機應用程序,完成整個通訊模塊的研制。經過測試表明,該設計方案正確可行,發送和接收數據穩定可靠,在實際應用中,能保證長時間無差錯運行,具有實際的工程應用價值。
參考文獻
[1] 黃敬禮,錢進.基于DM642的實時多協議轉換器設計[J].現代電子技術,2011,34(22):1?3.
[2] 宋慧娟.PXI Express外置控制器研制[D].哈爾濱:哈爾濱工業大學,2011.
[3] 張華強,趙剡,陳雨.基于FPGA 的ARINC429 通訊系統的設計與實現[J].通信技術,2010,43(12):4?5.
[4] 廖治宇.通用ARINC429總線分析測試儀的軟件設計[D].成都:電子科技大學,2013.
[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.
[6] 王景忠,王俊芳,于立佳.一種實現RS 232接口一對多通信的方法[J].無線電工程,2012,42(12):2?4.
[7] 龔榮華.RS 232接口芯片的IC設計[D].大連:大連理工大學,2008.
[8] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[9] 劉森,許永輝,孫闖.基于LAN的高集成度數據采集設備研制[J].現代電子技術,2013,36(16):115?116.
[10] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?115.
需要發送的并行格式數據由DEI1016轉化為符合ARINC429協議要求的串行信號后由發送通道輸出,為TTL電平,不能滿足429協議電平要求的+10 V差分信號要求,需要經過電平轉換才能發送到總線上。BD429是專用的ARINC429總線驅動芯片,也可用于ARINC571,ARINC575,RS 422等總線[4],支持TTL和CMOS輸入,可通過編程設置輸出差分信號電壓范圍,支持高速和低速ARINC429通信,常與DEI1016配合用于ARINC429接口。
FPGA中的ARINC429固件程序包括片選、時鐘、寫控制字、發送、接收等部分。
DEI1016在FPGA的時序控制下進行傳輸,與FPGA在同一時鐘域內,因此1 MHz時鐘信號通過FPGA內部PLL分頻50 MHz時鐘產生并提供。
DEI1016的正常工作之前需要先低電平復位,然后向控制寄存器內輸入控制字,控制字一共16位,包括設置ARINC429字長為25位或32位、奇偶校驗位、是否啟動自檢模式、傳輸速率(高速、低速)等。控制字發送到數據總線上,在由FPGA給出的LDCW信號上升沿時鎖存到DEI1016中。例如,設置DEI1016以高速傳輸(不使用自檢模式),32位字長,則控制字為0x0020。
將符合協議編碼要求的串行數據通過發送通道發送出去,需要FPGA提供如下的時序:當DEI1016空閑,可以發送數據時,則輸出TXR為高電平,讀取該信號若不為高證明可以傳輸,使能發送模塊開始工作,在計數器計數控制下在特定時間輸出LD1為低電平,數據總線上發送高位16位數據,輸出LD2為低電平,發送低位16位數據,并始終輸出ENTX為低電平。
ARINC429發送一個數據有32位,分為高位16位和低位16位。其中1~8位為地址標號位,主要用于確定字中的數據類型;9~10位為信息源/目標識別位(SDI),表明物理量從何而來;11~28位為數據位;29位為符號位,用于表示方位;30~31位為SSM位,定義硬件設備條件、操作方式、數據內容的有效性;第32位為校驗位[5]。對于控制芯片發送給DEI1016的并行數據,協議芯片會進行如下轉換,如圖4所示[4]。
接收模塊包括接收控制邏輯和FIFO。當總線上收到串行數據時,DEI1016輸出DR信號為低電平,通知控制器可以進行接收數據。接收控制邏輯的設計與發送邏輯類似,在計數器計數控制下依次輸出波形OE和SEL。FIFO由Quartus的MegaWizard工具自動生成。
2.2 RS 232硬件設計和編解碼邏輯
本方案選擇在FPGA內部實現RS 232通信數據的串/并轉換。RS 232是一種異步串行總線,單端通訊,適合于傳輸速率在0~20 000 b/s范圍內的通信[6],常用于計算機接口與近端外部終端設備的連接。一般使用DB?25或DB?9連接器連接總線和終端設備,本方案中使用DB9連接器。協議電氣特性規定-3~-15 V表示邏輯1, +3~+15 V表示邏輯0。采用MAX232完成TTL電平到標準電平之間的轉換,用光耦HCL2631和HCL263L隔離不同電源和參考地的FPGA和MAX232[7]。
FPGA內部的RS 232固件程序包括波特率設置、發送、接收部分。
程序的頂層包含控制寄存器等,對DSP發送的命令和數據進行鎖存,并根據選擇通道啟動底層模塊。發送或接收之前先進行復位,清空所有FIFO,寄存器內為初始值;然后對波特率、控制字等進行設置,波特率可設置為2 400 b/s,4 800 b/s,9 600 b/s等,默認為9 600 b/s。根據波特率分頻11.059 2 MHz時鐘生成發送時鐘。
發送編碼部分包括緩存FIFO和串/并轉換邏輯,將DSP發送的并行數據自動存入FIFO,當FIFO不為空且總線空閑時,讀出其中的數據,根據設置的波特率生成發送時鐘s_clk,在s_clk的觸發下將8位的并行數據每一位依次發送到單端的總線上,轉為串行數據,并根據需要在最后一位加上奇偶校驗。
接收功能模塊與發送編碼部分的原理類似,總線上收到串行數據時,由狀態機將串行數據轉為并行數據,自動存入FIFO,當DSP空閑時將FIFO中的數據讀出。4 測試結果
利用上位機應用程序驗證發送數據與接收數據是否一致。對4個ARINC429通道、多種波特率下的2個RS 232通道進行單幀數據收發測試,發送與接收的數據一致;對所有通道進行大量數據的連續收發測試,所有結果均正確返回,長時間工作沒有出現誤碼,證明該模塊硬件電路設計沒有問題,FPGA內編寫的邏輯正確,以及所編寫的DSP程序、儀器驅動函數、上位機應用程序均能穩定可靠地工作。
5 結 語
本文設計了一種基于PXI總線,以DSP和FPGA為控制核心,基于DEI1016的ARINC429通訊模塊,并包含RS 232通訊。設計了硬件電路,并根據DEI1016的時序要求編寫了控制邏輯,根據RS 232的協議要求在FPGA內集成了編解碼邏輯,編寫了DSP程序和基于LabWindows/CVI的上位機應用程序,完成整個通訊模塊的研制。經過測試表明,該設計方案正確可行,發送和接收數據穩定可靠,在實際應用中,能保證長時間無差錯運行,具有實際的工程應用價值。
參考文獻
[1] 黃敬禮,錢進.基于DM642的實時多協議轉換器設計[J].現代電子技術,2011,34(22):1?3.
[2] 宋慧娟.PXI Express外置控制器研制[D].哈爾濱:哈爾濱工業大學,2011.
[3] 張華強,趙剡,陳雨.基于FPGA 的ARINC429 通訊系統的設計與實現[J].通信技術,2010,43(12):4?5.
[4] 廖治宇.通用ARINC429總線分析測試儀的軟件設計[D].成都:電子科技大學,2013.
[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.
[6] 王景忠,王俊芳,于立佳.一種實現RS 232接口一對多通信的方法[J].無線電工程,2012,42(12):2?4.
[7] 龔榮華.RS 232接口芯片的IC設計[D].大連:大連理工大學,2008.
[8] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[9] 劉森,許永輝,孫闖.基于LAN的高集成度數據采集設備研制[J].現代電子技術,2013,36(16):115?116.
[10] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?115.
需要發送的并行格式數據由DEI1016轉化為符合ARINC429協議要求的串行信號后由發送通道輸出,為TTL電平,不能滿足429協議電平要求的+10 V差分信號要求,需要經過電平轉換才能發送到總線上。BD429是專用的ARINC429總線驅動芯片,也可用于ARINC571,ARINC575,RS 422等總線[4],支持TTL和CMOS輸入,可通過編程設置輸出差分信號電壓范圍,支持高速和低速ARINC429通信,常與DEI1016配合用于ARINC429接口。
FPGA中的ARINC429固件程序包括片選、時鐘、寫控制字、發送、接收等部分。
DEI1016在FPGA的時序控制下進行傳輸,與FPGA在同一時鐘域內,因此1 MHz時鐘信號通過FPGA內部PLL分頻50 MHz時鐘產生并提供。
DEI1016的正常工作之前需要先低電平復位,然后向控制寄存器內輸入控制字,控制字一共16位,包括設置ARINC429字長為25位或32位、奇偶校驗位、是否啟動自檢模式、傳輸速率(高速、低速)等。控制字發送到數據總線上,在由FPGA給出的LDCW信號上升沿時鎖存到DEI1016中。例如,設置DEI1016以高速傳輸(不使用自檢模式),32位字長,則控制字為0x0020。
將符合協議編碼要求的串行數據通過發送通道發送出去,需要FPGA提供如下的時序:當DEI1016空閑,可以發送數據時,則輸出TXR為高電平,讀取該信號若不為高證明可以傳輸,使能發送模塊開始工作,在計數器計數控制下在特定時間輸出LD1為低電平,數據總線上發送高位16位數據,輸出LD2為低電平,發送低位16位數據,并始終輸出ENTX為低電平。
ARINC429發送一個數據有32位,分為高位16位和低位16位。其中1~8位為地址標號位,主要用于確定字中的數據類型;9~10位為信息源/目標識別位(SDI),表明物理量從何而來;11~28位為數據位;29位為符號位,用于表示方位;30~31位為SSM位,定義硬件設備條件、操作方式、數據內容的有效性;第32位為校驗位[5]。對于控制芯片發送給DEI1016的并行數據,協議芯片會進行如下轉換,如圖4所示[4]。
接收模塊包括接收控制邏輯和FIFO。當總線上收到串行數據時,DEI1016輸出DR信號為低電平,通知控制器可以進行接收數據。接收控制邏輯的設計與發送邏輯類似,在計數器計數控制下依次輸出波形OE和SEL。FIFO由Quartus的MegaWizard工具自動生成。
2.2 RS 232硬件設計和編解碼邏輯
本方案選擇在FPGA內部實現RS 232通信數據的串/并轉換。RS 232是一種異步串行總線,單端通訊,適合于傳輸速率在0~20 000 b/s范圍內的通信[6],常用于計算機接口與近端外部終端設備的連接。一般使用DB?25或DB?9連接器連接總線和終端設備,本方案中使用DB9連接器。協議電氣特性規定-3~-15 V表示邏輯1, +3~+15 V表示邏輯0。采用MAX232完成TTL電平到標準電平之間的轉換,用光耦HCL2631和HCL263L隔離不同電源和參考地的FPGA和MAX232[7]。
FPGA內部的RS 232固件程序包括波特率設置、發送、接收部分。
程序的頂層包含控制寄存器等,對DSP發送的命令和數據進行鎖存,并根據選擇通道啟動底層模塊。發送或接收之前先進行復位,清空所有FIFO,寄存器內為初始值;然后對波特率、控制字等進行設置,波特率可設置為2 400 b/s,4 800 b/s,9 600 b/s等,默認為9 600 b/s。根據波特率分頻11.059 2 MHz時鐘生成發送時鐘。
發送編碼部分包括緩存FIFO和串/并轉換邏輯,將DSP發送的并行數據自動存入FIFO,當FIFO不為空且總線空閑時,讀出其中的數據,根據設置的波特率生成發送時鐘s_clk,在s_clk的觸發下將8位的并行數據每一位依次發送到單端的總線上,轉為串行數據,并根據需要在最后一位加上奇偶校驗。
接收功能模塊與發送編碼部分的原理類似,總線上收到串行數據時,由狀態機將串行數據轉為并行數據,自動存入FIFO,當DSP空閑時將FIFO中的數據讀出。4 測試結果
利用上位機應用程序驗證發送數據與接收數據是否一致。對4個ARINC429通道、多種波特率下的2個RS 232通道進行單幀數據收發測試,發送與接收的數據一致;對所有通道進行大量數據的連續收發測試,所有結果均正確返回,長時間工作沒有出現誤碼,證明該模塊硬件電路設計沒有問題,FPGA內編寫的邏輯正確,以及所編寫的DSP程序、儀器驅動函數、上位機應用程序均能穩定可靠地工作。
5 結 語
本文設計了一種基于PXI總線,以DSP和FPGA為控制核心,基于DEI1016的ARINC429通訊模塊,并包含RS 232通訊。設計了硬件電路,并根據DEI1016的時序要求編寫了控制邏輯,根據RS 232的協議要求在FPGA內集成了編解碼邏輯,編寫了DSP程序和基于LabWindows/CVI的上位機應用程序,完成整個通訊模塊的研制。經過測試表明,該設計方案正確可行,發送和接收數據穩定可靠,在實際應用中,能保證長時間無差錯運行,具有實際的工程應用價值。
參考文獻
[1] 黃敬禮,錢進.基于DM642的實時多協議轉換器設計[J].現代電子技術,2011,34(22):1?3.
[2] 宋慧娟.PXI Express外置控制器研制[D].哈爾濱:哈爾濱工業大學,2011.
[3] 張華強,趙剡,陳雨.基于FPGA 的ARINC429 通訊系統的設計與實現[J].通信技術,2010,43(12):4?5.
[4] 廖治宇.通用ARINC429總線分析測試儀的軟件設計[D].成都:電子科技大學,2013.
[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.
[6] 王景忠,王俊芳,于立佳.一種實現RS 232接口一對多通信的方法[J].無線電工程,2012,42(12):2?4.
[7] 龔榮華.RS 232接口芯片的IC設計[D].大連:大連理工大學,2008.
[8] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[9] 劉森,許永輝,孫闖.基于LAN的高集成度數據采集設備研制[J].現代電子技術,2013,36(16):115?116.
[10] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?115.