(陜西財經職業技術學院,陜西咸陽,712000)
嵌入式數據采集系統網絡接入的設計與實現
梁 麗
(陜西財經職業技術學院,陜西咸陽,712000)
隨著太網技術和嵌入式系統的發展,嵌入式系統以太網接口技術成為研究的熱點。本文對當前嵌入式系統的網絡的接入方法進行探討,并以32位的ARM處理器LPC2294與DM9000A太網控制器為例,進行網絡接入的設計。
嵌入式;太網;TCP/IP;ARM處理器
隨著網絡通信技術的發展,在電子產品中的應用也越來越廣泛。同時以太網技術在工業數據采集等方面的不斷發展,基于以太網的接口技術被廣泛的應用到電力系統、醫療器械等方面。而嵌入式以太網接口設計的核心是太網控制器,其性能的好壞將直接影響到整個數據采集系統信號的接受。
本文提出以DM9000A太網控制器與MSP430F5529單片機的嵌入式以太網接口的設計與實現。
DM9000A是聯杰公司推出的一款太網控制芯片,該芯片具有集成度高、功能強、引腳少以及性價比高的特點,而被廣泛的應用到嵌入式系統中。
該芯片的主要的特點為其集成了10/100 M的物理層的接口,可適應3類、4類、5類的10M以及5類的100M的無屏蔽雙絞線;同時其內部帶有16KB的SRAM用于發送和接受的FIFO緩存;同時該芯片支持8/16-bit 兩種不同的主機模式; DM9000A有48個引腳,以此有利于縮小PCB的面積;同時其完全支持802.3以太網的傳輸協議;DM9000A自身的功耗非常低,單電源3.3 V工作,內置3.3 V~2.5 V電源,I/O端口支持3.3 V~5 V的容差。
2.1設計的基本思路
本系統采用MSP430F5529作為控制系統,DM9000A作為數據的接受和發送系統,實現網絡傳輸功能。其基本的步驟為單片機首先完成對DM9000A初始化,同時將數據按照要求以太網幀封裝發送給DM9000A,該控制芯片再以中斷的方式對數據進行接受,并將接收到的數據進行解析和處理。而RJ45將主機發送來的數據進行接受,并將解析的結果保存在緩存中,然后由單片機發出中斷的信號,并有單片機對數據進行數據的處理。

圖1 系統硬件連接電路
2.2硬件電路連接
單片機和太網控制器都采用3.3V的電壓進行供電。單片機和DM9000采用8b的模式進行連接。使用P6的端口與SD0-7進行連接,以此傳輸數據或地址數據,而無需進行電平的轉換;P1.0與控制器芯片中的CMD進行連接,當在高時,讀取則為數據讀/寫操作,當在低時則為地址讀/寫操作。P1.1與芯片中的INT進行連接,用于信號的中斷讀?。籔1.2和P1.3連接,則主要控制讀或者是寫操作;P1.4與芯片中的CS連接,主要為DM9000A當中的片選信號。
對軟件的設計其基本思路為首先對其太網控制芯片進行初始化,在初始化之后進行軟件的變成從而使得可進行數據的發送和接收,在對單片機中的根據使用的網絡通信協議對其進行數據的解析或者是封包。而在對軟件進行設計之前,必須對DM9000A進行時序的操作,并編寫讀寫函數。
3.1軟件初始化
初始化是對軟件設置相應的參數,以此保證軟件的穩定運行,這就是軟件的初始化。其具體的步驟為:
(1)打開DM9000A芯片,將原來的默認值1改為0.其設置的方法是將芯片中的寄存器中的GPCR的[bit]值設置為1,將GPR的[bit]改為0.以此開啟芯片的工作狀態。
(2)重復兩次復位操作。要保證該芯片正常的工作,至少要對該芯片進行兩次軟啟動的操作。其具體的做法是在NCR寄存器中輸入3,在延遲至少10微秒之后,將其值改為零,重復一次該操作,從而進行軟件的復位。
(3)對MAC地址進行設置。在對該芯片進行初始化的過程中,要將其中的PAR寄存器進行初始化。而PAR中保存的是物理地址,因此,對地址的保存應根據網路的數據和PAR當中的數據進行比較來最終確定是否將數據發送給自己。
(4)對收/發控制寄存器的設置。清除發送狀態的寄存器,同時打開其中的收發中斷使能。
在上述步驟完成之后,通過NCR寄存器來檢查其是否初始化完畢,并進入工作狀態。如沒有則重復上述的操作順序。

圖2 數據發送流程設計
3.2數據的發送
DM9000A其內部含有16KB的緩存空間,其中的地址是從0000h到0BFFh共3 KB,該空間可用來作為發送數據的緩沖區,并可同時保存2個比較完整的以太網幀,而設計當中,可以將緩沖區看作為2個不同的獨立的緩沖區域,將其記錄在TXPLH和TXPLL的寄存器中.之后將TCR的[bit]值改為設定為1,啟動芯片,并將其數據進行封包傳送,并通過TSRI,TSRII寄存判斷。其具體的程序流程為:
3.3數據的接收
對數據的接收,則采用中斷的方式來完成對數據的接收。當太網控制器DM9000A在接收到數據之后,則采用CRC進行檢驗。在通過檢驗后,將產生一個中斷信號,當信號中斷之后,單片機將數據讀出,并按照其內部的網絡通信的協議進行處理。而在DM9000A中的0C00h到3FFF h總共13KB的緩存區,則為數據的緩沖接收區。同時芯片在對其進行讀取的時候,會在數據包前面加一個自己,表示數據的狀態,總共分為四個不用的字節。00h則表示沒有數據包;01H則表示有數據包;02H表示與這個數據包相關的信息;03H、04H其作用與TSR寄存器的格式含義一致,用于存放數據包。同時,其接收的步驟則為:
第一步是控制芯片讀取MRCMD寄存器中是否存在數據包;
第二步是如果有則根據數據包的長度依次對MRCMD寄存器進行讀取。
3.4網絡傳輸協議的實現
DM9000A芯片只用于網絡數據的傳輸,而具體的使用需按照單片機中的網絡通信協議來實現,如UPD協議、TCP/IP協議等。在該系統中我們采用TCP/IP協議,實現其網絡通信。而TCP/IP協議可分為四層,即網絡接口層、網絡層、應用層以及傳輸層。同時嵌入式的數據采集系統其在硬件資源以及實時性方面還存在一定的限制,而對于TCP/IP協議來將,其要求所占用的存儲的資源盡可能的小,因此,我們往往需要對TCP/IP進行一定的優化設計,而通常我們采用LwIP協議棧。該程序是瑞士的公司開發和設計的開放式的源代碼,其中通常采用ANSIC語言,而便于LwIP進行移植。
在將軟硬件進行搭建之后,上電啟動,同時設置系統和計算機的IP地址,并保證兩者的IP屬于同一個網段。通過運用計算機的ping命令對網絡接口進行測試,測試結果表明連著可連接成功。
[1] 高嵩,紀超,陳超波.基于嵌入式Linux的DM9000網絡驅動設計[J].計算機與數字工程,2013,02:304-306.
[2] 薛昊,佘勇,姚振東,李運洪.基于MicroBlaze和DM9000A的以太網接口設計[J].通信技術,2013,02:32-34.
梁麗,女,1979年6月生,陜西咸陽人,講師,工程碩士學位,研究方向:計算機應用、計算機網絡、平面設計教學工作
The design and implementation of embedded data acquisition system for network access
Liang Li
(Shaanxi Vocational College of Finance and Economics,ShaanxiXianyang,712000)
Along with the development of network technology and embedded system,Ethernet interface for embedded system become a hot study.This paper discussed the current access network of the embedded system,and by LPC2294 and DM9000A ARM processor32 bit Ethernet controller as an example,the design of network access.
embedded;Ethernet;TCP/IP;ARM processor