关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于ENC424J600的以太网与串行接口转换技术

基于ENC424J600的以太网与串行接口转换技术

作者: 时间:2012-03-23 来源:网络 收藏

2.2 系统硬件结构
网络转通信的系统结构框图如图4所示。STM32F103RET6通过SPI1通信、一个GPIO引脚作为中断引脚与网络控制器相连,系统再引出SPI2、CAN总线通信的引脚。将UART1接口作为控制台供调试使用。STM32F103RET6具有串口ISP下载功能,将BOOT0接高电平,BOOT1接低电平即可进入ISP下载模式。该系统可以通过跳线选择ISP下载功能。

本文引用地址://m.amcfsurvey.com/article/160920.htm

d.JPG



3 系统软件设计
软件的设计主要是移植LwIP协议栈,添加各串行通信接口的初始化程序,编写网络控制器底层驱动,编写上层应用程序。
3.1 网络控制器底层驱动实现过程
网络控制器底层驱动初始化程序放在low_level_init函数中,整个过程为:初始化SPI1接口,对网络控制器进行系统复位;设置发送、接收缓冲区指针;初始化PHY层为100 Mbase全双工模式,使能接收中断。网络控制器底层发送程序放在low_level_output函数中,整个过程为:将包拷贝至SRAM buffer,设置发送起始地址;发送帧长,置高TXRTS位使能发送,直到TXRTS被硬件清零才能进行第二次发送。网络控制器接收程序放在low_level_input函数中,当接收中断发生时系统通过上层应用程序调用low_level_input函数。该函数主要内容为:读取PKTIF位以确定是否有帧等待接收;设置接收指针地址,读取该帧的前8个字节,其中前两个字节为下一帧接收地址,第3、4个字节为这一帧的长度,申请当前帧长的缓冲区,将接收数据读入缓冲区,置高PKTDEC为下一帧接收做准备。
3.2 LwIP协议栈分析
LwIP协议栈可以在无操作系统的软件平台下移植,LwIP实现的重点是在保持TCP/IP协议主要功能的基础上减少对RAM的占用,因此它也适合在中低端的嵌入式系统中应用。LwIP主要是完成IP层和TCP/UDP数据传输层的任务,它与底层网络控制器的接口主要体现在etherneti f.c函数中。在帧的接收过程中以太网数据包通过底层接收程序传至IP层,IP层判断是TCP数据包还是UDP数据包,送至相应数据传输层处理,数据传输层再将收到的数据传至用户应用程序。在以太网帧的发送过程中,用户程序选择是通过UDP还是TCP发送数据包,将数据包送至相应的传输层,再传至IP层,IP层再将数据传至底层,发送程序将数据发送出去。
3.3 系统软件流程
系统软件流程如图5所示。

e.JPG


软件主要完成初始化、等待接收以太网帧、通过串行接口将数据帧发送出去的任务。初始化包括创建netif网络接口、SPI1接口、网络控制器的PHY层、MAC层,使能接收中断、初始化TCP服务器端。初始化完成后,等待上位机软件TCP的客户端与底层软件的TCP服务器端建立连接。连接建立后整个系统就循环等待接收TCP客户端发送的以太网数据帧,当有以太网数据帧到达时,产生接收中断,接收到的数据帧从PHY层传到MAC层,再传到IP层,最终传到TCP层进行数据接收处理。应用程序收到处理过的以太网数据帧,处理相应的数据,根据数据传递的信息通过SPI2或CAN总线串行通信接口将信息发送出去,以实现相应的控制功能。

tcp/ip相关文章:tcp/ip是什么


浮球开关相关文章:浮球开关原理


评论


相关推荐

技术专区

关闭