单位文秘网 2021-10-14 08:11:43 点击: 次
嵌入式以太网,是一种PC上用到的以太网的精简版,利用编程实现适合工业或商业的特殊需求,在设计时要做到各方面性能满足工业的需要。
ARM平台嵌入式RTL8019AS网卡数据通信
0引言
随着网络技术的发展与普及,嵌入式Ethernet技术也得到了迅速的发展使Ethernet全面应用于工业控制领域成为可能。嵌入式以太网,是一种PC上用到的以太网的精简版,利用编程实现适合工业或商业的特殊需求,在设计时要做到各方面性能满足工业的需要。
1系统设计
嵌入式以太网设计时主要用到S3C44B0X处理器和RTL8019网卡芯片,完成整体硬件电路设计后编写网卡的驱动程序,在S3C44BOX微处理器上配合局域网接口芯片RTL8019AS是目前价格最低廉的设计方式,但有很高的性能,以太网控制器RTL8019AS的主要性能符合EthernetⅡ与IEEE802.3标准,全双工,收发可同时达到10Mb/s的速率。S3C44B0X处理器提供对外围设备的多个BANK映射,在本设计中使用其BANK5用于RTL8019AS芯片RAM的通信,I/O基地址为0X60000000。S3C44BOX与RTL8019AS的接口采用UTPRJ-45,RTL8019AS与主机有3种接口工作模式:跳线方式、网卡的I/O和中断由跳线决定;即插即用方式,由软件进行自动配置即插即用;免跳线方式,网卡的I/O和中断由外界的93C46中的内容决定。本设计中RTL8019AS采用INT0中断连接到外部处理器的INT3中断,片选AEN引脚接处理器的nGCS5,BANK6,使用16位数据总线,处理器与RTL8019AS的数据线连接时连接必须将处理器的A1引脚与RTL8019AS芯片的SA0数据线引脚相连。
2嵌入式以太网数据通信的软件实现
对RTL8019AS的驱动主要包括:芯片初始化,接收和发送数据3个方面。初始化程序是针对以太网RTL8019AS进行的初始设置,使其能正常芯片复位、设置芯片寄存器及启动芯片。上电后芯片自动硬件复位,为确保完全复位,可向以太网的复位寄存器写入任意数据进行软复位,之后使芯片进入停止状态,对RTL8019AS内部寄存器进行设置。
软件复位主要步骤:
(1)EN_CR=ENCR_PAGE0+ENCR_NODMA+ENCR_START,其值为21选择页0寄存器,禁止收发数据;
(2)EN_RBCR0=0x00;EN_RBCR1,其值为0x00清除远程字节数;
(3)EN_RCR=ENRCR_RXOFF,设置接收配置寄存器其值为0X20,监听模式;
(4)EN_TCR=ENTCR_TXOFF,设置发送配置寄存器其值为0X02,回环模式;
(5)EN_PSTART=0x46,EN_PSTART=0x5f,设置接收RAM范围;
(6)EN_CR=0x61,选择页1寄存器。
最后,使芯片进入运行状态以结束初始化。
RTL8019AS的芯片初始化流程:
(1)RTL8019AS数据接收。接收程序工作过程比较复杂,主要在是寄存器的操作上。如果以太网接口芯片是处于复位状态,则对芯片进行初始化然后退出。如果处于正常状态,可调用while(1)语句和接收函数getethernet()不断检测网络中是否有数据送到本节点,如果有则根据先前工程定义好的网卡接收缓存区地址(0x46~0x5f)用CURR将接收到的数据读取到内存中,当CURR指针同BURY指针地址相同时说明接收数据结束。如果写指针指向的位置出错,则退出;否则增加读指针。判断接收到的数据,如果没有则做出错退出;如果接收到数据包,读取接收数据长度等信息,并检查接收状态等是否正确。若检查无误,则将接收到的数据读取至缓存区并调用相应的处理函数进行处理。如果检查发现有错误,则清空以太网接口芯片的接收缓冲区,退出。
(2)RTL8019AS数据发送
在发送程序中,程序首先调用make_ethernet()函数将数据封装成以太网的帧结构,计算出需要发送的数据的总长度。再调用put_ether-net()将数据发送至工程定义的RTL8019AS芯片内部的发送缓冲区(0x40~0x45),设置芯片发送起始地址。如果发送的数据少于60字节,则将数据填充至60个字节再发送出去。若数据大于1514个字节就要将数据分割到小于1514个字节后再发送。所以一个数据包的数据字节数必须控制在60-1514字节,这是以太网802.3协议规定的。如果发送失败则重发。
根据上述原理,在此基础上根据需求对接收和发送函数做修改,包括RTL8019AS片选地址,发送接收寄存器以及8019的寄存器地址等,修改完成后加入工程,用EMBEST IDE PRO进行在线仿真调试。
3系统调试
在系统调试过程中,芯片焊接很关键,特别是引脚在100个以上的芯片,在焊接的过程要十分小心要注意是否有虚焊,在调试时由于3.3-VTO5-V电平转换芯片74alvc芯片虚焊导致无法将程序下载进SDRAM———HY57V641620HG中,最后发现是虚焊引起的。此外在向RTL8019AS读写数据包是必须通过其I/O口:偏移地址为0x10H-0x17H进行操作不能直接对其RAM地址操作,在测试是否能正确读写RTL8019AS数据时,可同过I/O口向命令寄存器CR写入数据后再读取看数据是否一致,也可利用回环模式收发数据检验。RTL8019AS的RAM是非线性的,所以无法通过EMBEST集成开发环境查看其寄存器中的数值,调试时须引起注意。
4结语
本设计基于ARM处理器平台的RTL8019AS嵌入式以太网的设计,主要完成了整个系统的硬件调试及编程实现系统的收发功能,在设计中采用了RTL8019AS网卡芯片实现以太网的实时通信,可以简化硬件设计,提高设计效率,并且编程相对简单,通过对RTL8019AS网卡芯片寄存器的编程设置可以很好的设计出符合特定要求的嵌入式工控以太网。
参考文献:
[1]熊志金,郭洪娜,陈三宝.基于AT91M40800的嵌入式以太网接口.电子技术,2004,(1):33~35.
[2]田泽.嵌入式系统开发与应用实验教程.北京:北京航空航天大学出版社,2004.
[3]何轩,夏应清,李祥.基于ARM微处理器的嵌入式以太网接口.电子工程师,2005(1):72~74.
[4]吴高标.基于S3C44B0X与RTL8019AS的嵌入式以太网接口单元的设计.大众科学(科学研究与实践),2007,55~56.
[5]王艳芬,刘增环,马佩军,文露,高敬格.RTL8019AS及其在嵌入式以太网中的应用.中国农村水利水电,2007,136~137.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-119-95999-1.html
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用