国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2219|回復: 0
打印 上一主題 下一主題

機載計算機RS422A通訊的軟硬件設計與實現

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2016-10-26 15:35:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 422A , RS , 機載計算機
摘要 RS422A、RS485等異步串行通訊技術廣泛應用于機載計算機實時控制系統,提高了飛機的可維護性和可擴展性。為使其穩定工作,不僅需要可靠硬件平臺,還需嚴密的軟件算法°文中描述了某機載計算機為實現與多個設備進行實時異步串行通訊,設計了統一的硬件平臺,并根據每個設備不同的通訊協議,給出了不同的軟件算法,重點闡述了軟件設計及原理。根據該原理研制的產品已經過試驗、聯試和用戶使用,證明其工作可靠、性能良好。
關鍵詞 RS422A;RS485;通訊軟件設計
1 RS422A標準
RS422A是一種在工程中廣泛使用的接口標準,其采用差分傳輸方式,也稱為“平衡傳輸”,標準全稱是“平衡電壓數字接口電路的電氣特性”。可見RS422A定義的是接口電路的電氣特性,而對數據格式未作定義。RS422A是全雙工通信,通信的雙方均含有一個發送、接收驅動器。其中接收驅動器的兩個平衡線連接端點定義為A和B,發送驅動器的兩個平衡線連接端點定義為Y和Z,通常使用平衡雙絞線將一端的Y和A、Z和B相連。通常發送驅動器端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)采用協議芯片加接口驅動芯片的方式。該方式技術較成熟,但使用的元器件較多,占用印制板的板面較大。
(2)采用SOC的方式,將協議芯片的邏輯功能在可編程邏輯器件FPGA中編程實現。該方式使用的元器件較少,但在FPGA中寫出較完善的協議邏輯的難度較大。
本工程中采用第一種方式,用協議芯片16C552或16C554加接口驅動芯片進行通訊。并設計回繞自測試電路。采用16C552芯片實現全雙工收發RS-422器功能,RS-422驅動電路由DS26LS31MJ(4路RS-422發送器)、DS26LS32MJ(4路RS-422接收器)、終端匹配電路和保護電路組成。
3 軟件設計
3.1 通訊協議的定義
RS422A標準只對接口的電氣特性做出規定而不涉及協議,因此可定義自身的高層通信協議。在本設計方案中,在底層以Byte為單位通信,采用UART字的格式。在上層協議中采用數據包為單位通信。
通信協議中主要規定:(1)通訊雙方的傳送控制方式,即主從命令響應方式或周期通訊方式等。(2)通訊周期。(3)通訊速率,即波特率。(4)通訊字格式。通訊的最小信息單位是UART字,每個UART字由11位二進制數組成,如圖1所示。

第1位:起始位(邏輯“0”狀態為有效);第2~9位:信息位;第10位:奇偶校驗位(約定為偶校驗);第11位:停止位(邏輯“1”狀態為有效)。每個UART字按低位到高位的先后順序串行傳送。對于16位二進制數據分成兩個UART字,按由低到高的先后順序傳送。(5)通訊包格式。通訊傳送的基本單位是通訊包,通訊包由包頭、包狀態、數據字和包尾組成,最后的包尾是校驗和字,其結構如圖2所示。

校驗和字為通訊包中除校驗和字外所有字累加和的補碼。校驗和校驗正確的依據為接收到的UART字塊中所有字的累加和等于0。
包頭通常規定為0xAA55或0x55AA,與數據字相同的概率較小。包頭一旦與數據字相同,則可能誤認為該數據字為包頭,從而組包錯誤。
通訊協議應規定每個數據字中每一位的定義。若通訊協議中存在多種包長或多種數據包定義,則應在包狀態中說明該包的包長或包序號,由包序號可明確該包數據的詳細定義。
3.2 接收數據
首先,需確定接收數據的方式,即選擇查詢接收或是中斷接收。嵌入式實時控制系統應盡量減少中斷的使用,在查詢接收可滿足通訊要求,且不影響實時性的情況下,盡量采用查詢的方式接收數據。
若通訊協議規定,要接收的數據包的長度小于或等于硬件接收FIFO緩沖區的長度,且兩包數據間的間隔時間大于或等于最小查詢周期,則可采用查詢的方式接收數據。否則需采用中斷的方式接收,才能保證數據不丟失。
采用查詢的方式接收數據時,以最小周期進行反復查詢,若硬件接收FIFO緩沖區中有數據則收入軟件中設定的容量較大的先入先出隊列緩沖區。
采用中斷的方式接收數據時,硬件接收FIFO緩沖區中有數據則會引發中斷,中斷服務程序中將硬件接收FIFO緩沖區中有數據則收入軟件中設定的容量較大的先入先出隊列緩沖區。
而后,再以通訊協議規定的接收數據周期,從軟件隊列緩沖區中取數、找包頭、按包長組包、算校驗和。當未收到完整數據包或校驗和錯時,進行錯誤計數。

上述分兩步接收數據的流程示意如圖3所示。以該方式,可無需消耗多余的時間,并確保數據不丟失。
3.3 發送數據
發送數據作為主動的行為,盡量不使用中斷。當需發送的數據包長度小于或等于硬件發送FIFO緩沖區時,可直接發送。當需發送的數據包長度大于硬件發送FIFO緩沖區時,可分為多次發送。軟件將要發送的數據組織好后存入容量較大的先入先出隊列緩沖區。再以軟件運行的最小周期,將隊列緩沖區中的數據分批裝入硬件發送FIFO緩沖區進行發送。
4 數據組包的算法
以通訊協議規定的接收數據周期,從軟件隊列緩沖區中取數,進行數據組包的算法是較為重要的,其保證了軟件采信數據的有效性和完整性。并和通訊協議密切相關。包長固定時的流程如圖4所示,其主要步驟如下:

(1)確認要接收的通道號是否合法。
(2)在軟件隊列緩沖區中,當剩余字節數大于等于包長時,才有可能取得新的一包完整數據。剩余字節數小于包長則認為無新的一包完整數據,等到下個周期再組包接收。
(3)在剩余字節數大于等于包長的條件下,按照通訊協議中規定的包頭,從隊列中依次查找,非包頭則拋掉,直至找到包頭。
(4)以包頭為起始,按包長取出一包數據,計算校驗和。若校驗和正確則得到一包有效數據。
(5)軟件隊列緩沖區中若還有足夠數據,則繼續查找包頭并組包,若有新的一包有效數據則采用最新數據,防止數據積壓。
用該算法,當有錯誤數據出現時,可檢查出錯誤并丟棄出錯的數據包,找出下一包正確的數據。不會因一包數據出錯而影響后續多包數據。
要接收的數據包長變化時,通訊協議需規定,根據包頭后的包狀態字明確該包數據的包長。先假定當前要接收的是最短包,以緩沖區中剩余字節數大于或等于最短包長,作為找包頭的前提條件。找到包頭后,根據包狀態字確定該包包長,若緩沖區中剩余字節數小于該包包長,則認為數據未完成接收,將包頭和包狀態字仍留存在緩沖區中,等待下個周期補充新數據后再進行組包接收。包長變化時接收數據組包的流程較復雜,如圖5所示。


5 結束語
文中設計的算法充分考慮了傳輸過程可能出現的各種情況,分兩步完成數據接收,小周期或中斷僅進行硬件緩沖區的接收,滿足實時性要求且保證數據不會因未及時接收而丟失;大周期進行數據組包,并以最快捷的方式找到有效數據包。系統與12個設備進行RS422A或RS485通訊,經驗證,文中設計的算法綜合機載計算機實時控制系統的實時性和可靠性要求。   
                               
                                                               
                               
               
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日免费视频 | 永久在线观看 | 性欧美午夜高清在线观看 | 日本亚洲欧美在线 | 国产成人午夜片在线观看 | 国产亚洲精品自在线观看 | 日本在线资源 | 欧美男人天堂 | 亚洲欧美国产精品专区久久 | 综合网在线视频 | 国产高清精品一区 | 国产精品一区二区手机看片 | 欧美性区 | h肉动漫在线观看播放 | 男女那啥的视频免费 | 日本三级黄视频 | 美女被猛男躁免费视频网站 | 亚欧在线 | 一区二区三区四区在线免费观看 | 91成人国产 | 香蕉久久久 | 青青草国产成人久久91网 | 麻豆影 | 中文字幕一区二区三区免费看 | 久久er国产精品免费观看1 | 免费成人黄色片 | 久久99国产乱子伦精品免费 | 国产福利在线高清导航大全 | 免费久草| 99综合网 | 成品人视频w免费观看w | 日本护士在线视频xxxx免费 | h免费观看 | 国产精品自在欧美一区 | a天堂中文在线 | 中文在线日韩 | 成人欧美一区二区三区黑人免费 | 亚洲精品亚洲人成在线麻豆 | 国产丰满眼镜女在线观看 | 久久五月婷| 91精品国产福利在线观看性色 |