機載計算機RS422A通訊的軟硬件設計與實現(xiàn)
摘要 RS422A、RS485等異步串行通訊技術廣泛應用于機載計算機實時控制系統(tǒng),提高了飛機的可維護性和可擴展性。為使其穩(wěn)定工作,不僅需要可靠硬件平臺,還需嚴密的軟件算法°文中描述了某機載計算機為實現(xiàn)與多個設備進行實時異步串行通訊,設計了統(tǒng)一的硬件平臺,并根據(jù)每個設備不同的通訊協(xié)議,給出了不同的軟件算法,重點闡述了軟件設計及原理。根據(jù)該原理研制的產品已經(jīng)過試驗、聯(lián)試和用戶使用,證明其工作可靠、性能良好。
關鍵詞 RS422A;RS485;通訊軟件設計
1 RS422A標準
RS422A是一種在工程中廣泛使用的接口標準,其采用差分傳輸方式,也稱為“平衡傳輸”,標準全稱是“平衡電壓數(shù)字接口電路的電氣特性”。可見RS422A定義的是接口電路的電氣特性,而對數(shù)據(jù)格式未作定義。RS422A是全雙工通信,通信的雙方均含有一個發(fā)送、接收驅動器。其中接收驅動器的兩個平衡線連接端點定義為A和B,發(fā)送驅動器的兩個平衡線連接端點定義為Y和Z,通常使用平衡雙絞線將一端的Y和A、Z和B相連。通常發(fā)送驅動器端Y、Z之間的正電平在2~6 V,代表正邏輯,負電平在-6~-2 V,代表負邏輯。在接收端,當A、B之間有>+ 200 mV的電平時,輸出正邏輯電平-200 mV時,輸出負邏輯電平。RS422A最大傳輸距離為4 000英尺(約1 219 m),最大傳輸速率為10 Mbit· s-1。其中平衡雙絞線的長度與傳輸速率成反比,在100 kbit·s-1速率下,才可達到最大傳輸距離。只有在較短的距離下才能獲得最高速率傳輸。一般100 m長的雙絞線可獲取的最大傳輸速率為1Mbit·s-1。
2 硬件設計
對于RS422A、RS485等異步串行通訊的硬件設計,主要有兩種方式。
(1)采用協(xié)議芯片加接口驅動芯片的方式。該方式技術較成熟,但使用的元器件較多,占用印制板的板面較大。
(2)采用SOC的方式,將協(xié)議芯片的邏輯功能在可編程邏輯器件FPGA中編程實現(xiàn)。該方式使用的元器件較少,但在FPGA中寫出較完善的協(xié)議邏輯的難度較大。
本工程中采用第一種方式,用協(xié)議芯片16C552或16C554加接口驅動芯片進行通訊。并設計回繞自測試電路。采用16C552芯片實現(xiàn)全雙工收發(fā)RS-422器功能,RS-422驅動電路由DS26LS31MJ(4路RS-422發(fā)送器)、DS26LS32MJ(4路RS-422接收器)、終端匹配電路和保護電路組成。
3 軟件設計
3.1 通訊協(xié)議的定義
RS422A標準只對接口的電氣特性做出規(guī)定而不涉及協(xié)議,因此可定義自身的高層通信協(xié)議。在本設計方案中,在底層以Byte為單位通信,采用UART字的格式。在上層協(xié)議中采用數(shù)據(jù)包為單位通信。
通信協(xié)議中主要規(guī)定:(1)通訊雙方的傳送控制方式,即主從命令響應方式或周期通訊方式等。(2)通訊周期。(3)通訊速率,即波特率。(4)通訊字格式。通訊的最小信息單位是UART字,每個UART字由11位二進制數(shù)組成,如圖1所示。
第1位:起始位(邏輯“0”狀態(tài)為有效);第2~9位:信息位;第10位:奇偶校驗位(約定為偶校驗);第11位:停止位(邏輯“1”狀態(tài)為有效)。每個UART字按低位到高位的先后順序串行傳送。對于16位二進制數(shù)據(jù)分成兩個UART字,按由低到高的先后順序傳送。(5)通訊包格式。通訊傳送的基本單位是通訊包,通訊包由包頭、包狀態(tài)、數(shù)據(jù)字和包尾組成,最后的包尾是校驗和字,其結構如圖2所示。
校驗和字為通訊包中除校驗和字外所有字累加和的補碼。校驗和校驗正確的依據(jù)為接收到的UART字塊中所有字的累加和等于0。
包頭通常規(guī)定為0xAA55或0x55AA,與數(shù)據(jù)字相同的概率較小。包頭一旦與數(shù)據(jù)字相同,則可能誤認為該數(shù)據(jù)字為包頭,從而組包錯誤。
通訊協(xié)議應規(guī)定每個數(shù)據(jù)字中每一位的定義。若通訊協(xié)議中存在多種包長或多種數(shù)據(jù)包定義,則應在包狀態(tài)中說明該包的包長或包序號,由包序號可明確該包數(shù)據(jù)的詳細定義。
3.2 接收數(shù)據(jù)
首先,需確定接收數(shù)據(jù)的方式,即選擇查詢接收或是中斷接收。嵌入式實時控制系統(tǒng)應盡量減少中斷的使用,在查詢接收可滿足通訊要求,且不影響實時性的情況下,盡量采用查詢的方式接收數(shù)據(jù)。
若通訊協(xié)議規(guī)定,要接收的數(shù)據(jù)包的長度小于或等于硬件接收FIFO緩沖區(qū)的長度,且兩包數(shù)據(jù)間的間隔時間大于或等于最小查詢周期,則可采用查詢的方式接收數(shù)據(jù)。否則需采用中斷的方式接收,才能保證數(shù)據(jù)不丟失。
采用查詢的方式接收數(shù)據(jù)時,以最小周期進行反復查詢,若硬件接收FIFO緩沖區(qū)中有數(shù)據(jù)則收入軟件中設定的容量較大的先入先出隊列緩沖區(qū)。
采用中斷的方式接收數(shù)據(jù)時,硬件接收FIFO緩沖區(qū)中有數(shù)據(jù)則會引發(fā)中斷,中斷服務程序中將硬件接收FIFO緩沖區(qū)中有數(shù)據(jù)則收入軟件中設定的容量較大的先入先出隊列緩沖區(qū)。
而后,再以通訊協(xié)議規(guī)定的接收數(shù)據(jù)周期,從軟件隊列緩沖區(qū)中取數(shù)、找包頭、按包長組包、算校驗和。當未收到完整數(shù)據(jù)包或校驗和錯時,進行錯誤計數(shù)。
上述分兩步接收數(shù)據(jù)的流程示意如圖3所示。以該方式,可無需消耗多余的時間,并確保數(shù)據(jù)不丟失。
3.3 發(fā)送數(shù)據(jù)
發(fā)送數(shù)據(jù)作為主動的行為,盡量不使用中斷。當需發(fā)送的數(shù)據(jù)包長度小于或等于硬件發(fā)送FIFO緩沖區(qū)時,可直接發(fā)送。當需發(fā)送的數(shù)據(jù)包長度大于硬件發(fā)送FIFO緩沖區(qū)時,可分為多次發(fā)送。軟件將要發(fā)送的數(shù)據(jù)組織好后存入容量較大的先入先出隊列緩沖區(qū)。再以軟件運行的最小周期,將隊列緩沖區(qū)中的數(shù)據(jù)分批裝入硬件發(fā)送FIFO緩沖區(qū)進行發(fā)送。
4 數(shù)據(jù)組包的算法
以通訊協(xié)議規(guī)定的接收數(shù)據(jù)周期,從軟件隊列緩沖區(qū)中取數(shù),進行數(shù)據(jù)組包的算法是較為重要的,其保證了軟件采信數(shù)據(jù)的有效性和完整性。并和通訊協(xié)議密切相關。包長固定時的流程如圖4所示,其主要步驟如下:
(1)確認要接收的通道號是否合法。
(2)在軟件隊列緩沖區(qū)中,當剩余字節(jié)數(shù)大于等于包長時,才有可能取得新的一包完整數(shù)據(jù)。剩余字節(jié)數(shù)小于包長則認為無新的一包完整數(shù)據(jù),等到下個周期再組包接收。
(3)在剩余字節(jié)數(shù)大于等于包長的條件下,按照通訊協(xié)議中規(guī)定的包頭,從隊列中依次查找,非包頭則拋掉,直至找到包頭。
(4)以包頭為起始,按包長取出一包數(shù)據(jù),計算校驗和。若校驗和正確則得到一包有效數(shù)據(jù)。
(5)軟件隊列緩沖區(qū)中若還有足夠數(shù)據(jù),則繼續(xù)查找包頭并組包,若有新的一包有效數(shù)據(jù)則采用最新數(shù)據(jù),防止數(shù)據(jù)積壓。
用該算法,當有錯誤數(shù)據(jù)出現(xiàn)時,可檢查出錯誤并丟棄出錯的數(shù)據(jù)包,找出下一包正確的數(shù)據(jù)。不會因一包數(shù)據(jù)出錯而影響后續(xù)多包數(shù)據(jù)。
要接收的數(shù)據(jù)包長變化時,通訊協(xié)議需規(guī)定,根據(jù)包頭后的包狀態(tài)字明確該包數(shù)據(jù)的包長。先假定當前要接收的是最短包,以緩沖區(qū)中剩余字節(jié)數(shù)大于或等于最短包長,作為找包頭的前提條件。找到包頭后,根據(jù)包狀態(tài)字確定該包包長,若緩沖區(qū)中剩余字節(jié)數(shù)小于該包包長,則認為數(shù)據(jù)未完成接收,將包頭和包狀態(tài)字仍留存在緩沖區(qū)中,等待下個周期補充新數(shù)據(jù)后再進行組包接收。包長變化時接收數(shù)據(jù)組包的流程較復雜,如圖5所示。
5 結束語
文中設計的算法充分考慮了傳輸過程可能出現(xiàn)的各種情況,分兩步完成數(shù)據(jù)接收,小周期或中斷僅進行硬件緩沖區(qū)的接收,滿足實時性要求且保證數(shù)據(jù)不會因未及時接收而丟失;大周期進行數(shù)據(jù)組包,并以最快捷的方式找到有效數(shù)據(jù)包。系統(tǒng)與12個設備進行RS422A或RS485通訊,經(jīng)驗證,文中設計的算法綜合機載計算機實時控制系統(tǒng)的實時性和可靠性要求。
評論