武漢海王機電工程技術公司 胡 瀅
重慶前衛科技集團有限公司 歐江波
武漢海王機電工程技術公司 程 波
基于電力線載波的雙網口調制解調器設計
武漢海王機電工程技術公司 胡 瀅
重慶前衛科技集團有限公司 歐江波
武漢海王機電工程技術公司 程 波
設計了一種用于電力線載波通訊的,具備雙網口和路由功能的調制解調器。調制解調器可工作在直流電壓最大1200V的供電電纜上,實現多種調制方式的載波通訊。本調制解調器具備雙網口,可同時接入到雙線路中,并具備路由選擇功能,可根據IP地址選擇相應的線路,通過實現冗余來提高整個系統的可靠性。該調制解調器已成功用于水下采油樹控制系統中,滿足系統提出的高可靠性和冗余備份要求。
調制解調器;路由;冗余設計
雙網口為調制解調器系統提供冗余備份,適用于可靠性要求較高的應用。本文介紹了一種雙網口電力載波調制解調器實現,配合適當的冗余策略,可根據通訊負載和設備故障情況再通信線路間進行智能切換。

圖1 雙網口冗余線路系統圖
如圖1雙網口冗余線路系統圖所示,用戶和調制解調器間有兩條備份通信線路,具備調制解調和路由功能,將電力線上的載波信號解調和把需要發送的信號進行調制發送至電力線外,分析目標網絡地址,選擇可行的通信線路。
如圖2所示,該調制解調器的硬件由五個模塊組成:主控單片機、調制解調模塊、網絡模塊、接收發送濾波器模塊和耦合去耦模塊。STM32單片機作為控制中心,實現網口模塊和調制解調模塊的底層驅動,控制以太網口的收發,調制解調模塊的配置、發送和接收,實現路由選擇,在不同的網段間轉發包;調制解調模塊ST7580片上集成了高性能的PHY處理器和協議控制器、模擬前端和線路驅動器, ST7580通過RS232接口和主控制器通信;DM9051網口模塊實現和其它設備通訊的以太網接口;接收濾波器將去耦后信號調理為解調模塊頻率和幅度范圍內信號;發送濾波器將調制信號頻率調理到符合電纜特性的傳輸頻帶內;耦合和去耦電路實現調制信號和直流高壓的耦合和去耦。

圖2 模塊連接圖
從網絡OSI分層結構來看,該調制解調器在在鏈路層、網絡層、傳輸層實現以下功能:在鏈路層,實現了調制解調器模塊和網絡模塊的驅動、地址解析協議(ARP);在網絡層,實現了路由選擇、因特網控制報文協議(ICMP)、因特網互聯協議(IP);在傳輸層,實現了傳輸控制協議(TCP)和用戶數據報協議(UDP)。在傳輸層上的應用層,用戶可通過冗余通信應用程序實現雙網口冗余通信的智能切換。
在圖1的連接方式下,用戶A和B之間通過電纜進行通信,用戶A 網口ETH1的IP地址IP1和Modem A的網口ETH1的IP地址IPa處于同一網段,用戶A網口ETH1網關設置為IPa。用戶A網口ETH2、用戶B的網口ETH1和網口ETH2的設置也類似設置。
當用戶A和用戶B之間通訊選定某條通信線路,如A1-A-C-B-B1線路時,用戶A從ETH1口發送信息,目標IP為用戶B的ETH1口,由于IP1和IP3處于不同的網段,發送的信息將從網關設定的地址轉包,即發送至Modem A的ETH1口轉包。Modem A收到后,判別原目的地址為IP3,依次確定下一跳為Modem B的ETH1口,通過調制解調后,到達Modem B的ETH1口,該口IP地址IPc和目的地址IP3處于同一網段,從該口發出后,最終到達Modem B的ETH1口,完成從用戶A到用戶B經由A1-A-C-B-B1的一次通訊。
本調制解調器路由實現中涉及TCP/IP協議棧部分移植于uIP。uIP是專為8位和16位單片機開發的TCP/IP網絡協議棧的一種開源實現。uIP因易于移植,代碼量和占用資源少,在嵌入式系統中得到廣泛應用。出于節約資源的考慮,uIP實現中僅用一個IP包緩沖區全局變量,半雙工工作,用于接收和發送。本調制解調器具備雙網口,將IP包緩沖區封裝為結構體,如下代碼所示:
typedef struct{
u16_t uip_len; //緩沖區長度
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]; //接收發送緩沖區
};
程序主函數在網口輪詢函數和解調緩沖區函數間循環。網口數據輪詢子函數實現網口數據接收和發送任務處理,流程圖如圖3所示:當網口收到數據,判斷接收包類型。若為ARP包類型,當為有效的ARP請求時,重新填充ARP幀,作為ARP回應從網口發送。當為ARP回應則更新對應ARP表;若為IP包類型,判斷目標IP所處網段,若為遠程網段,將IP包中的相應字段放入調制緩沖區內待調制模塊調制到供電電纜上,若為本地網段,經IP包處理函數,當為有效IP包時應答,應答幀所需的以太地址通過查找ARP表得到(沒有找到則需發送ARP請求),最終通過網口物理層發送。

圖3 網口數據輪詢流程圖
解調緩沖區查詢子程序實現解調緩沖區內數據處理任務,如圖4所示:當解調緩沖區內有新數據時,將緩沖區內數據拷貝至IP包相應字段,判斷該數據的目標IP地址是該端口還是和該端口同一網段的其它主機,若為本端口,通過IP包處理函數,判別為有效的IP包時回應,由于該回應的目標為遠程主機,因此需將此回應的IP包相應字段放入調制緩沖區內。若為和該端口處于同一網段的其它主機,則通過網口進行轉發,轉發所需目標以太地址通過查找ARP表得到(沒有找到需發送ARP請求),最終通過網口物理層發送。

圖4 解調緩沖區查詢流程圖
本文涉及的雙網口調制解調器可靠性高,已經成功用于采油樹水下采油樹控制系統電氣分系統地面調制解調器和水下電子模塊中,實現了五千米雙網口雙線路的電纜單芯通訊。
[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.野火.