付丙林
(江蘇無線電廠有限公司,江蘇南京210022)
多種通信方式并存的通信裝置開發研究
付丙林
(江蘇無線電廠有限公司,江蘇南京210022)
介紹一種多種通信方式并存的通信方法,該方法工作效率較高、誤碼率較低,不僅提高了CPU的工作效率,而且傳輸數據穩定可靠,便于用戶使用。
低碳工業化;新型城鎮化;中部地區
ODN的智能化管理能夠將ODN網管、PON網管、資源管理系統、OSS(綜合的業務運營和管理平臺)和現有的網管設備組成統一的管理平臺,由于ODN設備中存在以太網口接口、USB通信接口、藍牙通信接口、RS485總線通信接口和1-Wire總線通信接口多種數據通信方式,多種通信方式并存會使得ODN設備使用時存在以下缺陷:
1)CPU需要同時處理多種通信接口傳輸的數據,多種通信接口傳輸的數據可能引起沖突;CPU不僅工作效率較低,而且容易卡死,不便于人們使用。
2)為了防止數據傳輸錯誤,可以將數據接收和數據處理分開單獨操作,即不同通信方式對應的數據接收操作、數據處理操作均單獨編成子函數,但是單獨編成子函數會使得主程序中的邏輯安排比較困難,程序設計的工作效率較低。
本文介紹的多種通信方式并存的通信方法,包括以下步驟。
步驟A:將嵌入式實時操作系統RTOS的內核移植入通信設備,在RTOS中編寫通信接口不同的數據通信模塊,每一個數據通信模塊對應一種通信接口;為每個數據通信模塊配置對應的通信任務,將所有通信任務按照所要執行的功能劃分為不同的優先級,形成通信任務隊列。
步驟B:根據通信任務隊列的順序,通過RTOS判定數據通信模塊的通信中斷信號產生時,開辟一塊內存區域,將內存區域定義為循環隊列;將循環隊列中的第一個內存單元標記為判斷單元,判斷單元標記有循環隊列數據滿的信息、循環隊列數據空的信息。
步驟C:判定循環隊列中已經存儲的數據總數未超過循環隊列的閾值時,接收與通信中斷信號對應的通信接收數據;判斷循環隊列中的rear指針與front指針是否指向同一個內存單元,若是,轉到步驟D,否則轉到步驟E。
步驟D:讀取判斷單元的信息,若判斷單元的信息為循環隊列數據空的信息,轉到步驟E;若判斷單元的信息為循環隊列數據滿的信息,轉到步驟H。
步驟E:將通信接收數據儲存至通信數據儲存單元,同時將rear指針指向下一個內存單元、并將其標記為通信數據儲存單元,轉到步驟F。
步驟F:發送與通信接收數據對應的阻塞式信號量,判斷循環隊列中的rear指針與front指針是否指向同一個內存單元,若是,轉到步驟G,否則轉到步驟H。
步驟G:讀取判斷單元的信息,若判斷單元的信息為循環隊列數據滿的信息,轉到步驟H;若判斷單元的信息為循環隊列數據空的信息,轉到步驟B。
步驟H:讀取通信數據讀取單元的通信處理數據,同時將front指針指向下一個內存單元、將其標記為通信數據讀取單元,將通信處理數據通過與其對應的通信接口處理并發送;轉到步驟I。
步驟I:重復執行步驟B~步驟H,直至所有通信接收數據接收完畢、所有通信處理數據發送完畢,釋放內存區域。
基于上述方法的多種通信方式并存的通信裝置,包括:
編程模塊,用于:將嵌入式RTOS的內核移植入通信設備,在RTOS中編寫各種通信接口不同的數據通信模塊,每一個數據通信模塊對應一種通信接口,向任務配置模塊發送任務配置信號。
任務配置模塊,用于:接收編程模塊發送的任務配置信號后,為每個數據通信模塊配置對應的通信任務,將所有通信任務按照所要執行的功能劃分為不同的優先級,形成通信任務隊列、并向通信中斷信號檢測模塊發送通信中斷檢測信號。
通信中斷信號檢測模塊,用于:接收中斷檢測信號后,根據通信任務隊列的順序,通過RTOS判定數據通信模塊的通信中斷信號產生時,向循環隊列定義模塊發送循環隊列定義信號。
循環隊列定義模塊,用于:接收通信中斷信號檢測模塊發送的循環隊列定義信號后,開辟一塊內存區域,將內存區域定義為循環隊列;將循環隊列中的第一個內存單元標記為判斷單元,判斷單元標記有循環隊列數據滿的信息、循環隊列數據空的信息。
數據接收檢測模塊,用于:接收循環隊列定義模塊發送的數據接收檢測信號后,判定循環隊列中已經存儲的數據總數,未超過循環隊列的閾值,向通信數據儲存模塊發送通信數據儲存信號。
通信數據儲存模塊,用于:接收數據接收檢測模塊發送的通信數據儲存信號后,接收與通信中斷信號對應的通信接收數據,判斷循環隊列中的rear指針與front指針是否指向同一個內存單元,若是,向通信數據判斷模塊發送通信數據判斷信號;否則向數據儲存模塊發送數據儲存信號。
通信數據判斷模塊,用于:接收通信數據儲存模塊發送的通信數據判斷信號后,讀取判斷單元的信息,若判斷單元的信息為循環隊列數據空的信息,向數據儲存模塊發送數據儲存信號;若判斷單元的信息為循環隊列數據滿的信息,向數據處理模塊發送數據處理信號。
數據儲存模塊,用于:接收數據儲存信號后,將通信接收數據儲存至通信數據儲存單元,同時將rear指針指向下一個內存單元、并將其標記為通信數據儲存單元,向數據處理檢測模塊發送數據處理檢測信號。
數據處理檢測模塊,用于:接收數據處理檢測信號后,發送與通信接收數據對應的阻塞式信號量,判斷循環隊列中的rear指針與front指針是否指向同一個內存單元,若是,向數據處理判斷模塊發送數據處理判斷信號;否則向數據處理模塊發送數據處理信號。
數據處理判斷模塊,用于:接收數據處理檢測模塊發送的數據處理判斷信號后,讀取判斷單元的信息,若判斷單元的信息為循環隊列數據滿的信息、向數據處理模塊發送數據處理信號;若判斷單元的信息為循環隊列數據空的信息,向通信中斷信號檢測模塊發送通信中斷檢測信號。
內存釋放模塊,用于:將所有通信接收數據接收完畢、所有通信處理數據發送完畢后,釋放內存區域。
(編輯:劉楠)
Research on the Development of Communication Devicesw ith M ultiple Communication M odes
Fu Binglin
(Jiangsu W ireless Power Plant Co.,Ltd.,Nanjing Jiangsu 210022)
This paper introduces a communication method in which multiple communication modes coexist.The method has high efficiency and low error rate.Itnotonly improves the working efficiency of CPU,butalso the transmission data is stable and reliable and convenient for users.
low-carbon indnstrialization;new urbanization;central region
TN913.6
A
2095-0748(2016)23-0087-02
10.16525/j.cnki.14-1362/n.2016.23.41
2016-11-16
付丙林(1984—),男,內蒙古呼倫貝爾人,大專,助理工程師,研究方向:射頻通信、接收機與發射機、開關電源技術開發。