武漢海王機電工程技術公司 胡 瀅
重慶前衛(wèi)科技集團有限公司 歐江波
武漢海王機電工程技術公司 程 波
基于電力線載波的雙網(wǎng)口調制解調器設計
武漢海王機電工程技術公司 胡 瀅
重慶前衛(wèi)科技集團有限公司 歐江波
武漢海王機電工程技術公司 程 波
設計了一種用于電力線載波通訊的,具備雙網(wǎng)口和路由功能的調制解調器。調制解調器可工作在直流電壓最大1200V的供電電纜上,實現(xiàn)多種調制方式的載波通訊。本調制解調器具備雙網(wǎng)口,可同時接入到雙線路中,并具備路由選擇功能,可根據(jù)IP地址選擇相應的線路,通過實現(xiàn)冗余來提高整個系統(tǒng)的可靠性。該調制解調器已成功用于水下采油樹控制系統(tǒng)中,滿足系統(tǒng)提出的高可靠性和冗余備份要求。
調制解調器;路由;冗余設計
雙網(wǎng)口為調制解調器系統(tǒng)提供冗余備份,適用于可靠性要求較高的應用。本文介紹了一種雙網(wǎng)口電力載波調制解調器實現(xiàn),配合適當?shù)娜哂嗖呗?,可根?jù)通訊負載和設備故障情況再通信線路間進行智能切換。
圖1 雙網(wǎng)口冗余線路系統(tǒng)圖
如圖1雙網(wǎng)口冗余線路系統(tǒng)圖所示,用戶和調制解調器間有兩條備份通信線路,具備調制解調和路由功能,將電力線上的載波信號解調和把需要發(fā)送的信號進行調制發(fā)送至電力線外,分析目標網(wǎng)絡地址,選擇可行的通信線路。
如圖2所示,該調制解調器的硬件由五個模塊組成:主控單片機、調制解調模塊、網(wǎng)絡模塊、接收發(fā)送濾波器模塊和耦合去耦模塊。STM32單片機作為控制中心,實現(xiàn)網(wǎng)口模塊和調制解調模塊的底層驅動,控制以太網(wǎng)口的收發(fā),調制解調模塊的配置、發(fā)送和接收,實現(xiàn)路由選擇,在不同的網(wǎng)段間轉發(fā)包;調制解調模塊ST7580片上集成了高性能的PHY處理器和協(xié)議控制器、模擬前端和線路驅動器, ST7580通過RS232接口和主控制器通信;DM9051網(wǎng)口模塊實現(xiàn)和其它設備通訊的以太網(wǎng)接口;接收濾波器將去耦后信號調理為解調模塊頻率和幅度范圍內信號;發(fā)送濾波器將調制信號頻率調理到符合電纜特性的傳輸頻帶內;耦合和去耦電路實現(xiàn)調制信號和直流高壓的耦合和去耦。
圖2 模塊連接圖
從網(wǎng)絡OSI分層結構來看,該調制解調器在在鏈路層、網(wǎng)絡層、傳輸層實現(xiàn)以下功能:在鏈路層,實現(xiàn)了調制解調器模塊和網(wǎng)絡模塊的驅動、地址解析協(xié)議(ARP);在網(wǎng)絡層,實現(xiàn)了路由選擇、因特網(wǎng)控制報文協(xié)議(ICMP)、因特網(wǎng)互聯(lián)協(xié)議(IP);在傳輸層,實現(xiàn)了傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)。在傳輸層上的應用層,用戶可通過冗余通信應用程序實現(xiàn)雙網(wǎng)口冗余通信的智能切換。
在圖1的連接方式下,用戶A和B之間通過電纜進行通信,用戶A 網(wǎng)口ETH1的IP地址IP1和Modem A的網(wǎng)口ETH1的IP地址IPa處于同一網(wǎng)段,用戶A網(wǎng)口ETH1網(wǎng)關設置為IPa。用戶A網(wǎng)口ETH2、用戶B的網(wǎng)口ETH1和網(wǎng)口ETH2的設置也類似設置。
當用戶A和用戶B之間通訊選定某條通信線路,如A1-A-C-B-B1線路時,用戶A從ETH1口發(fā)送信息,目標IP為用戶B的ETH1口,由于IP1和IP3處于不同的網(wǎng)段,發(fā)送的信息將從網(wǎng)關設定的地址轉包,即發(fā)送至Modem A的ETH1口轉包。Modem A收到后,判別原目的地址為IP3,依次確定下一跳為Modem B的ETH1口,通過調制解調后,到達Modem B的ETH1口,該口IP地址IPc和目的地址IP3處于同一網(wǎng)段,從該口發(fā)出后,最終到達Modem B的ETH1口,完成從用戶A到用戶B經(jīng)由A1-A-C-B-B1的一次通訊。
本調制解調器路由實現(xiàn)中涉及TCP/IP協(xié)議棧部分移植于uIP。uIP是專為8位和16位單片機開發(fā)的TCP/IP網(wǎng)絡協(xié)議棧的一種開源實現(xiàn)。uIP因易于移植,代碼量和占用資源少,在嵌入式系統(tǒng)中得到廣泛應用。出于節(jié)約資源的考慮,uIP實現(xiàn)中僅用一個IP包緩沖區(qū)全局變量,半雙工工作,用于接收和發(fā)送。本調制解調器具備雙網(wǎng)口,將IP包緩沖區(qū)封裝為結構體,如下代碼所示:
typedef struct{
u16_t uip_len; //緩沖區(qū)長度
uip_ipaddr_t uip_hostaddr; //本地IP地址
uip_ipaddr_t uip_draddr; //默認路由地址
uip_ipaddr_t uip_netmask; //掩碼地址
struct uip_eth_addr uip_ethaddr; //mac地址
u8_t uip_buf[UIP_BUFSIZE+2]; //接收發(fā)送緩沖區(qū)
};
程序主函數(shù)在網(wǎng)口輪詢函數(shù)和解調緩沖區(qū)函數(shù)間循環(huán)。網(wǎng)口數(shù)據(jù)輪詢子函數(shù)實現(xiàn)網(wǎng)口數(shù)據(jù)接收和發(fā)送任務處理,流程圖如圖3所示:當網(wǎng)口收到數(shù)據(jù),判斷接收包類型。若為ARP包類型,當為有效的ARP請求時,重新填充ARP幀,作為ARP回應從網(wǎng)口發(fā)送。當為ARP回應則更新對應ARP表;若為IP包類型,判斷目標IP所處網(wǎng)段,若為遠程網(wǎng)段,將IP包中的相應字段放入調制緩沖區(qū)內待調制模塊調制到供電電纜上,若為本地網(wǎng)段,經(jīng)IP包處理函數(shù),當為有效IP包時應答,應答幀所需的以太地址通過查找ARP表得到(沒有找到則需發(fā)送ARP請求),最終通過網(wǎng)口物理層發(fā)送。
圖3 網(wǎng)口數(shù)據(jù)輪詢流程圖
解調緩沖區(qū)查詢子程序實現(xiàn)解調緩沖區(qū)內數(shù)據(jù)處理任務,如圖4所示:當解調緩沖區(qū)內有新數(shù)據(jù)時,將緩沖區(qū)內數(shù)據(jù)拷貝至IP包相應字段,判斷該數(shù)據(jù)的目標IP地址是該端口還是和該端口同一網(wǎng)段的其它主機,若為本端口,通過IP包處理函數(shù),判別為有效的IP包時回應,由于該回應的目標為遠程主機,因此需將此回應的IP包相應字段放入調制緩沖區(qū)內。若為和該端口處于同一網(wǎng)段的其它主機,則通過網(wǎng)口進行轉發(fā),轉發(fā)所需目標以太地址通過查找ARP表得到(沒有找到需發(fā)送ARP請求),最終通過網(wǎng)口物理層發(fā)送。
圖4 解調緩沖區(qū)查詢流程圖
本文涉及的雙網(wǎng)口調制解調器可靠性高,已經(jīng)成功用于采油樹水下采油樹控制系統(tǒng)電氣分系統(tǒng)地面調制解調器和水下電子模塊中,實現(xiàn)了五千米雙網(wǎng)口雙線路的電纜單芯通訊。
[1]AN4018 Data link communication protocol for the ST7580 power line networking SoC.Vincenzo Mormina.
[2]The uIP Embedded TCP/IP Stack The uIP 1.0 Reference Manual.Adam Dunkels.
[3]零死角玩轉STM32.野火.