采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

发布时间:2023-04-07  

随着数字信息技术和互联网的广泛应用, 以操作系统和Internet为标志的嵌入式系统是后PC时代发展的趋势。工业上广泛应用的232 /485通信接口与Internet相连接, 使得各种传感器, 控制器及其他设备的数据可以大量的在Internet上传输。


串口服务器由此而生, 通过扩展多串口, 可以在PC端远程监控、管理各种外设, 或对外设进行系统升级。通常串口服务器采用ARM9 微处理器和带TCP / IP协议栈的付费操作系统, 而文中提出的串口服务器是通过移植LW IP协议栈到代码开源的μC /OS - Ⅱ中实现, 这样不但降低成本, 而且代码的编写更加透明、灵活。


1硬件系统的设计

本串口服务器采用Philip s的ARM7 系列芯片LPC2210,网络控制芯片采用RTL8019, 串口采用TL16C554芯片扩展。为得到更广泛的应用, 串口端还扩展485 接口, 通过跳线选择232 /485 方式。系统结构框图, 如图1所示。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图1系统结构框图

2软件系统的实现

串口服务器软件系统包括两部分: TCP / IP协议栈的移植和实时多任务应用程序。μC /OS - Ⅱ在LPC系列ARM中的移植采用周立功公司的方案。


2.1TCP / IP协议栈的移植

LW IP是瑞士人Adma Dumkels等开发的源代码开放的精简TCP / IP 协议栈。目的是在于保证TCP协议完整的情况下减少系统资源的需求, 适合于资源较少的嵌入式系统应用。移植LW IP协议栈主要有两部分代码: (1)编写操作系统模拟层相关代码; (2) LW IP接口初始设置及网卡驱动。


2.1.1操作系统模拟层相关代码

操作系统模拟层存在的目的主要是在μC /OS - Ⅱ和LW IP之间提供一座桥梁, 使LW IP能与μC /OS - Ⅱ能以相同的规范存在于一个系统中并能相互通信。LW IP有信号量和邮箱两种进程通讯方式, 而μC /OS - Ⅱ也提供这两种进程通讯方式。


信号量用来同步任务, 操作函数有sys_new_sem (建立并返回一个新信号量) , sys_ sem _ signal(指定要发送的信号量) , sys_sem_free (指定要释放的信号量) , sys_arch_sem_wait (等待由参数sem指定的信号量并阻塞线程) , 在这些函数体中进行数据结构的初始化并加入μC /OS - Ⅱ中的相关函数便可完成。


邮箱用来投递消息, LW IP允许将邮箱实现为一个队列,多条消息投递到这个邮箱。

μC /OS - Ⅱ提供了丰富的消息队列函数, 且μC /OS - Ⅱ和LW IP投递到邮箱中的消息均用指针实现。该系统建立了多个邮箱, 邮箱通过单向链表接在一起。接收消息的最大数量由消息数组决定, 结构图如图2所示。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图2邮箱数据结构图

邮箱建好后用指针P_Mbox指向节点1, 申请新邮箱将节点1和节点2断开, P_Mbox指向节点1的p stNext, 以此类推。回收时P_Mbox的移动方向与申请时相反, 这样不会浪费内存且比较稳定。由以上结构和μC /OS - Ⅱ提供的函数写出邮箱相关函数。


除此之外, 还需要编写任务创建函数sys_thread_new和sys_arch_timeouts函数, 由于每个任务都有timeouts链表, sys_arch _timeouts函数返回的sys_timeouts结构保存了timeouts链表的首地址。


2.1.2LW IP初始化设置及底层驱动

LW IP的初始化设置包含在LW IP通信进程的入口函数中, 其入口函数LwipEntry的基本结构如下:

Void LwipEntry ( void 3 pvArg)

{

/ /初始化LW IP, 涉及LW IP使用的内存区,PCB ( TCP /UDP)以及OS模拟层各个方面

__ilvInitLwip ( ) ;

/ /设置LW IP, 包括添加配置网络接口, 建立接受任务等工作

__ilvSetLwip ( ) ;

/ /在这里建立LW IP 的应用, 服务器支持TCP /UDP方式, 两种方式都建立

}

底层驱动在服务器每次收发数据中都要调用,这部分代码需要有良好的健壮性和稳定性。整个实现顺序, 如图3所示。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图3底层程序框架图

发送主线首先是以太网初始化函数( 1)开始,调用链路层发送函数(2)并增加各层协议头, 再调用RTL8019发送函数(9)发送数据。


接收主线除初始化以太网外, 需调用链路层初始化函数(3) , ( 3)中调用( 4)初始化RTL8019。


收到的数据先经过函数(8) , 然后通过信号量传送到函数(6) , 由( 6)调用( 7)得到数据个数, 最后由(5)根据以太网帧头携带的上层协议类型判断是交给IP协议还是ARP协议处理。


移植完毕, 进行数据收发实验验证。使用TCP传输协议, 由网口虚拟串口软件VSPM通过串口调试工具收发数据, 图4是以10 ms的发送速度在自发自收程序中收发数据的截图。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图4TCP协议数据传输界面

由于COM1和COM2被PC机占用, 故由网口虚拟出来的串口是COM3, 由图4可看出在面向连接的TCP协议下, 高速收发数据不会丢包。


2.2实时多任务方案的设计

16个串口分别与网络端口组成16 个双向通道。为使代码灵活、透明, 程序不使用LW IP提供的SOCKET AP I。应用程序把每个双向通道分为发送, 接收, 串口3个任务, 加上LW IP本身需占用一个任务, 共需建立49个任务。μC /OS - Ⅱ最多能建立64 个任务, 其中8 个操作系统本身占用,剩56个能满足要求。由VSPM软件把网口模拟成16个串口, 串口服务器侦听的16 个端口分别是1 000~1 015, 如图5所示。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图5网口虚拟扩展16个串口界面

网络端和串口端的数据接收会触发相应的中断。每个双向通道的3个任务各司其职, 网口端接收数据中断后在传输层协议判断信源的端口号,交给相应的接收任务, 处理完后交给串口任务把数据从相应串口发送; 串口接收数据后在中断程序中判断信源的通道号, 把数据交给串口任务,处理完后由发送任务通过网口把数据发送出去。


服务器支持TCP /UDP两种传输协议, 下面给出一个通道的TCP传输流程图, UDP部分代码只需在相应任务中调用LW IP给的UDP函数。TCP模式下串口服务器工作在Server模式, PC机工作在Client模式, 流程图, 如图6所示。

采用RTL8019与LPC2210芯片的嵌入式串口服务器设计方案

图6串口服务器单通道程序流程图


3.结论

文中以简单的硬件框架和灵活的软件结构设计了一种低成本串口服务器, 虽然本服务器是以性能不及ARM9且不能使用L inux的ARM7为主控芯片, 但两种开源代码μC /OS - Ⅱ实时操作系统和LW IP协议栈的有效结合避免了高额的软件费用, 而且能满足通信要求。实验证明, 基于LW IP和μC /OS - Ⅱ的串口服务器不仅能实现双向通信,而且传输数据实时、准确, 符合工业应用的要求。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    以太网供电设备控制电路设计详解;以太网是Xerox公司发明的基带LAN标准。它采用带冲突检测的载波监听多路访问协议(CSMA/CD),速率为10Mbps,传输介质为同轴电缆。而IEEE802.3标准......
    一起探索车载以太网协议的基本面貌;车载以太网发展历史 自1980年至今,IEEE组织、OPEN Aliance SIG组织、宝马、博通公司等为传统以太网到汽车领域的应用拓展发挥了十分关键的作用,重要......
    介质访问控制块可支持全双工操作,并可完全依照IEEE802.3以太网标准来处理有关以太网数据帧的发送和接收,包括冲突检测、帧头的产生和检测、CRC校验码的生成和验证等。通过对发送控制器(TXCMD......
    如下: 1. 计算目标 MAC地址的 CRC32值。计算 CRC32的方法参见 IEEE802.3的第 3.2.8章中FCS的说明 。根据IEEE802.3中 CRC值的计算要求,和以太网帧中 MAC......
    的串行工业总线已经无法满足生产线同步性与大规模数据传输的要求。以太网逐渐成为主流,基于以太网全球主流OEM开发确定性网络工业以太网协议包括Profinet, Ethercat, Powerlink等。这些协议......
    采集部分采用CC2530芯片与ZStack协议栈组建的ZigBee无线传感器网络。终端设备对现场的温度、湿度等数据进行采集,通过路由器把数据传送到协调器。协调器与主控芯片STM32F103C6通过RS-232......
    是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以......
    器,其电缆规格要求在五类线以上。DoIP边缘节点作为直接与外部测试设备连接的车内节点,需要支持检测物理连接的通断,并通知通信层相关的时间信息,且必须在支持IEEE802.3中规定的100BASE-TX标准......
    务器和网络设备的通信速度的进一步提高是一个重大挑战。支持高速网络的下一代以太网标准IEEE802.3将使用数字相干方法,如800GBASE-LR1(10公里)、800GBASE-ER1-20(20公里)和800GBASE-ER1(40公里......
    。 ENC28J60 的主要特点如下: 兼容 IEEE802.3 协议的以太网控制器 集成 MAC 和 10 BASE-T 物理层 支持全双工和半双工模式 数据冲突时可编程自动重发 SPI 接口速度可达 10Mbps......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>