999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

以太網串口服務模塊的光端機監控系統設計

2018-03-01 00:36:54,,,,,,
單片機與嵌入式系統應用 2018年2期
關鍵詞:進程

,,,,,,

(中國電子科技集團公司 第三十四研究所,桂林 541004)

引 言

圖1 系統架構圖

在雷達信號地面接收、車載綜合指揮系統等應用場合,大多采用了點對點或星型結構的光傳輸系統。在這些應用場合下,局端光端機處于監控中心,遠端光端機則位于較遠或較惡劣的環境。要實現對整個光傳輸系統的統一管理,一是要實現遠控,二是監控主機應接入方便,客戶端管理便捷,并且具有分布式管理的能力。

本文設計了以太網串口服務模塊(簡稱以太網模塊),移植了TCP/IP協議,它具有多個套接字地址,每一臺被管理的終端設備分配了一個套接字地址,客戶端進程通過套接字地址來與終端設備建立通信連接,實現了進程對終端設備的一對一管理。該方案不僅適用于點對點的光傳輸系統,也適用于小型星形光傳輸網絡,具有低成本、高效益的特點。

1 系統方案設計

系統架構圖如圖1所示,以點對點光傳輸系統為例,整個系統主要由局端光端機、遠端光端機和監控主機組成。

在局端光端機中,以太網模塊實現了網絡數據包向2個異步串行接口(簡稱串口)的分發。串口0和局端ARM處理器的串口相連,用來對局端光端機進行狀態采集和控制;串口1與局端FPGA相連,通過FPGA進行復接,再經光電變換、光纖傳輸,最終與遠端光端機內的ARM處理器的串口相連,用作遠端光端機的監控接口。FPGA在此過程中實現了業務流和控制流的復接和分接。

2 以太網模塊的設計

2.1 硬件設計

以太網模塊要選用的ARM處理器需要移植TCP/IP協議棧,必須具有較高的工作頻率,同時內部集成10/100M MAC控制器,及容量可觀的RAM和FLASH存儲器。同時,為了方便端口數量的擴展,ARM處理器集成的串口(UART)數量盡可能多,為了降額設計,還需滿足低功耗、高性能的特點。基于以上需求,處理器選用了NXP公司的Cortex-M3架構的LPC1768。

LPC1768采用了新一代Cortex-M3架構,比傳統的ARM7架構減少了邏輯門數量,提高了工作頻率,降低了功耗。最高工作頻率為100 MHz,集成了512 KB FLASH和64 KB RAM存儲器,以及RMII接口的MAC,且具有4個異步數據串行接口UART0~UART3。

圖2 以太網模塊硬件示意圖

以太網PHY選用了MICREL公司的KSZ8041NL,它是單芯片10/100M以太網物理層收發器,支持線序自適應和10/100M自協商功能,和LPC1768之間通過RMII接口相連,連接圖如圖2所示。

根據OSI定義的7層TCP/IP參考模型,網際協議IP實現了主機到主機的通信,傳輸層協議(TCP/UDP)實現了進程到進程的通信。IP地址定義了主機,端口號(port number)定義了進程。進程是運行著的程序的最小單位,同一臺主機上可同時運行多個相互獨立的進程,它們具有相同的IP地址(本機的IP地址),擁有不同的端口號。因此,IP地址和端口號的組合稱為套接字地址(Socket地址),通過Socket地址將不同的進程區別開來。本質上,進程才是數據的生產者和消費者,當主機收到數據報時,通過檢查數據報的目的端口號尋找與之匹配的進程,并將數據交給它;當進程發送數據時,目的端口號和源端口號被插入數據報中,通過網絡傳輸。設備收到數據報后,根據目的端口號進行數據路由選擇。

進程對設備的一對一管理如圖3所示,監控主機上運行著2個進程,進程1發出的數據通過UART0(對應端口0)轉發出去,由局端光端機的ARM接收處理;進程2發出的數據通過UART1(對應端口1)轉發出去,由遠端光端機接收處理,反之亦然。這樣就實現了進程和設備的點對點通信,不同的進程管理著不同的設備,并且獨立運行。

圖3 進程對設備的一對一管理

綜上所述,每個端口號對應著一個物理的串口(UART),每個串口聯系著一臺設備,等同于每臺設備都有一個Socket地址,通過設備的Socket地址實現了進程對設備的一對一管理。在客戶端界面上可通過不同的顯示顏色表示不同的告警事件,如進程界面為灰色表示設備掉線;紅色表示設備告警;綠色表示設備工作正常。

另一方面,進程可以運行在不同的主機上,同時以太網模塊支持多連接,這樣可以實現分布式管理。

2.2 軟件設計

2.2.1 以太網驅動

LPC1768的MAC和PHY芯片KSZ8041NL分別實現了數據鏈路層和物理層的功能。其中MAC含有一個分散/聚集以太網幀的DMA引擎,它實現了MAC和片上SRAM之間的數據傳輸。DMA引擎利用存儲器中“發送描述符數組”和“接收描述符數組”來管理收發數據。描述符數組的每一個元素對應著一個數據緩沖區,多個數據緩沖區形成環形結構,而每一個數據緩沖區可以保存一個完整的以太網幀(Frame)或其中的一個幀片段(Fragment),即一個完整的以太網幀由一個或多個幀片段組成。

同時,使用生產索引(Produce Index)和消費索引(Consume Index)兩個索引寄存器,來記錄幀片段在環形緩沖結構中的位置,并隨著數據的生產和消費相應地循環移動。

接收數據時,DMA引擎將MAC收到的幀片段“分散”存放到多個接收緩沖區,并設置狀態標志位,供上層服務使用;發送數據時,DMA引擎將多個發送緩沖區的幀片段按順序“集中”起來發送出去,并設置狀態標志位,供上層服務使用。

完整的以太網驅動的初始化包含如下過程:

① LPC1768的以太網模塊時鐘和引腳使能;

② 初始化MAC地址、背對背、包間隙、最大幀長、沖突/重發窗口等控制寄存器;

③ 初始化PHY芯片;

④ 初始化發送描述符數組和接收描述符數組;

⑤ 使能接收完成(Rx Done)和發送完成(Tx Done)中斷;

⑥ 啟動發送和接收功能。

2.2.2 TCP/IP協議棧移植

TCP/IP協議棧的實現必須基于嵌入式實時操作系統。本方案采用了RL-RTX實時操作系統,它由ARM公司開發,是一款功能強大的嵌入式實時操作系統,適用于ARM7、ARM9、以及Cortex-M架構的微處理器,具有如下特點:

① 支持時間片、搶占式和合作式調度;

② 低中斷延遲,對應Cortex-M3/M4內核可以實現零中斷延遲;

③ 具有254級任務優先級;

④ 支持庫移植方式,移植方便;

⑤ 基于對話框的配置向導,裁剪方便。

具體移植時,選擇庫移植方式,在“目標選項”標簽頁的操作系統下拉列表中選擇“RTX Kernel”;然后,添加RTX系統的配置文件RTX_Conf_CM.c到工程中,通過配置向導對任務數量、默認堆棧大小、主頻和tick值進行設置,完成操作系統的裁剪。

RL-RTX實時操作系統同時提供了眾多的中間件,其中TCP/IP協議的中間件為RL-TCPnet,它具有RAM空間,花費少,同時目標代碼緊湊,特別適合于資源有限的嵌入式操作系統,并針對ARM7、ARM9、以及Cortex-M架構的微處理器進行了優化。

移植RL-TCPnet時,需要對三個文件重點關注:TCP_CM3.lib是實現RL-TCPnet的庫文件,需要將其添加到工程中;Net_Config.c是配置文件,可通過配置向導完成對IP地址、MAC地址等參數的設置;rtl.h包含了RL-TCPnet的庫文件的函數原型,使用時必須引用它。

RL-TCPnet作為中間件,提供了與驅動層和應用層的數據傳輸接口。在系統初始化時,調用init_TcpNet()函數來初始化RL-TCPnet,該函數調用了以太網驅動層的相關函數,完成了對MAC和PHY的初始化;同時建立了RL-TCPnet的運行環境。

當OS啟動之后,需要2個優先級固定的系統任務支撐RL-TCPnet的運行。任務tick_timer()用來為RL-TCPnet提供節拍,以周期性地喚醒RL-TCPnet主線程main_TcpNet();任務tcp_poll()調用RL-TCPnet主線程main_TcpNet(),它使用標準的Socket API向應用層提供數據收發服務。

本方案中使用UDP協議來進行應用開發,RL-TCPnet主線程main_TcpNet()監聽網絡上的UDP數據包,無論何時,只要收到UDP數據包,就會調用回調函數udp_callback(),通過消息郵箱的通信機制通知應用層任務接收數據包。

數據包中不僅含有凈荷,還含有源端口號和目的端口號,供應用層進行路由處理;發送UDP數據包時,應用層將待發送的數據正文準備好,調用UDP Socket Send API函數的同時將目標IP地址、目的端口號、源端口號等參數傳遞給它,main_TcpNet()將自動組成UDP數據包并交由驅動層發送出去。

2.2.3 數據包路由選擇

每一個串口的端口號存儲在存儲器中,當收到UDP數據包時,將數據包中的目的端口號與各個串口的端口號逐一比對,若有匹配的,則將凈荷向相應的串口轉發;若匹配不中,則將該UDP數據包丟棄。

同時,為每一個串口分配512字節的接收緩沖區,任務循環檢查各個緩沖區是否為空,一旦某個串口收到字節,在將其放入對應的緩沖區的同時啟動超時計時,超時時間一般為當前波特率下接收5個字符的時間,當下一個到來的字符沒有超時時,超時計數器被清零;當發生超時時,則表示完整地收到了一幀數據,為該幀數據插上源端口號,目的端口號等幀頭信息交由UDP Socket Send API函數進行轉發,完成串口到網口的數據傳輸。

3 測試與驗證

如圖4所示,使用TCP&DUP測試工具在監控主機上建立了2個UDP客戶端,目標IP均為10.35.217.168,客戶端1通過端口號23訪問局端光端機,客戶端2通過端口號26訪問遠端光端機,數據通信正常,2個客戶端獨立工作,分別實現對局端光端機和遠端光端機的監控。

圖4 UDP多進程測試

結 語

[1] 王國法,劉薇,段明瑋.基于嵌入式系統的以太網通信開發[J].光通信技術,2012,36(4):36-38.

[2] Behrouz A.Forouzan.TCP/IP協議族 [M].3版.北京:清華大學出版社,2009.

郭文龍(工程師),主要從事光通信研發工作。

猜你喜歡
進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進程中的國際收支統計
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進程
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
講效率 結束進程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
論文萊的民族獨立進程
主站蜘蛛池模板: 亚洲最黄视频| 黄色一及毛片| 国产成人禁片在线观看| 九九热精品视频在线| 精品无码一区二区三区在线视频| 久久香蕉国产线看观| 亚洲,国产,日韩,综合一区 | 欧美a√在线| a国产精品| 91免费精品国偷自产在线在线| 国产精品v欧美| 99热这里只有精品在线播放| 免费看久久精品99| 欧美色香蕉| 亚洲一区第一页| 四虎永久在线精品国产免费| 日韩二区三区无| 日韩av手机在线| 丰满的少妇人妻无码区| 国产性生交xxxxx免费| 国产欧美精品一区二区| 亚卅精品无码久久毛片乌克兰 | 男人的天堂久久精品激情| 久久99这里精品8国产| 国产精品久久久久婷婷五月| 看国产一级毛片| 国产精女同一区二区三区久| 亚洲高清日韩heyzo| 四虎国产在线观看| 欧美视频免费一区二区三区| 亚洲成av人无码综合在线观看| 色有码无码视频| 5555国产在线观看| 国产精品污污在线观看网站| 日韩视频免费| 欧美精品v| 五月婷婷亚洲综合| 精品国产一区二区三区在线观看| 天天综合亚洲| 色亚洲激情综合精品无码视频| 97青草最新免费精品视频| 婷婷久久综合九色综合88| 片在线无码观看| 久久这里只有精品66| 午夜国产精品视频| 中文字幕资源站| 日韩毛片免费| 日韩精品亚洲人旧成在线| 久久青草热| 国产色伊人| av在线人妻熟妇| 国产丝袜丝视频在线观看| 一级毛片免费不卡在线| 全免费a级毛片免费看不卡| 国产在线精品99一区不卡| 在线看片国产| 日本精品影院| 国产www网站| 国产理论最新国产精品视频| 久久久久国产一区二区| 91麻豆久久久| 国产综合在线观看视频| 久久99国产综合精品1| 国产精品视频白浆免费视频| av午夜福利一片免费看| 国产精品99一区不卡| 中文字幕1区2区| 亚洲天堂精品在线| 国产精品无码AV片在线观看播放| av在线5g无码天天| 久久久受www免费人成| 色婷婷天天综合在线| 国产精品人成在线播放| 亚洲第一成网站| 免费看av在线网站网址| 精品91在线| 亚洲福利视频一区二区| 亚洲色图欧美视频| 四虎AV麻豆| 国产大片喷水在线在线视频| 亚洲国产成人超福利久久精品| 视频在线观看一区二区|