(陕西财经职业技术学院,陕西咸阳,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进行连接,用于信号的中断读取;P1.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