摘要:给出了采用LPC2364芯片为处理器,并利用以太网中TCP协议来设计串口转网口模块,从而实现数据传输方式转换的一种设计方法。该方法中的软件采用FreerRtos实时多任务嵌入式系统和uIP协议栈来实现串口数据通讯和网口数据通讯两项任务。文中同时给出了系统框图和主程序流程图。
关键词:TCP/IP协议;LPC2364;uIP;FreeRTOS;串口转网口
O 引言
串口转网口模块是一个可以让串口设备立即具备联网能力的设备联网服务器。它具有1个可选择界面串口和1个TCP/IP网络接口,可让串口设备立即连接网络。从而实现工业设备完全自动化联网管理。该模块体积小,非常容易整合在系统或设备内,而且可以适应复杂的网络。为此,本文给出了采用LPC2364、DP83848C、SP3485和H2019等芯片构成一个串口转网口模块的软硬件实现方法。
1 uIP介绍
uIP是由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels开发的一种软件协议栈。该协议栈的源代码由C语言编写,并完全公开。uIP协议栈去掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议。它把设计重点放在了IP/TCP /ICMP/UDP/ARP这些网络层和传输层协议上,故可保证其代码的通用性和结构的稳定性。
由于uIP协议栈是专门为嵌入式系统而设计的。因此,uIP还具有如下优越功能:
◇代码非常少,其协议栈代码不到6K,很方便阅读和移植。
◇占用的内存数非常少,RAM占用仅几百字节。
◇其硬件处理层、协议栈层和应用层共用一个全局缓存区,且不存在数据的拷贝,发送和接收都是依靠这个缓存区,故可极大地节省空间和时间。
◇支持多个主动连接和被动连接并发。
◇源代码中提供的实例程序包括web服务器、web客户端、电子邮件发送程序(SMTP客户端)、Telnet服务器、DNS主机名解析程序等。而且通用性强,移植后基本不用修改就可以通过。
◇对数据的处理采用轮循机制,不需要操作系统的支持。
由于uIP对资源的需求较少且移植很容易,因此,大部分具有小RAM的微控制器都可以使用uIP协议栈。
2 FreeRTOS介绍
FreeRTOS是一款可移植且源代码开放的微型实时内核。可为多种不同的处理器架构和开发工具提供移植包。每个官方移植包都包含一个配置好的应用范例,可用来展示内核特性,加快学习进程。
FreeRTOS是一种专为小型嵌入式系统设计的,可扩展的实时内核。其亮点在于其设计遵循小型、简单、易用的原则,同时可支持任务(tasks)和协程(co-routines)以及队列、二进制信号量、计数信号量、递归信号量和互斥量等,可用于任务之间、任务和中断之间的通信和同步。
3 串口转网口模块的硬件实现
串口转网口模块使用到的芯片有LPC2364、DP83848C、SP3485和H2019,其系统的硬件电路图如图1所示。
4 串口转网口模块的软件实现
本串口转网口模块的软件需要建立两个任务,一是初始化,二是任务调度。其中初始化包括时钟初始化,协议栈初始化,IP地址初始化,网关地址初始化,子网掩码初始化,网口初始化。串口初始化等。其主函数代码如下: