当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于ARM7的串口服务器的实现

摘 要:文中提出了一种低成本、高性能的嵌入式串口服务器的硬软件设计方案。该服务器以ARM7芯片LPC2210为核心控制器, 采用RTL8019以太网控制器处理网络数据, TL16C554异步通信组件处理串口数据。对轻便TCP/ IP协议栈LW IP在μC/OS - Ⅱ实时操作系统中进行了移植, 并对16路串行通道设计了实时多任务方案, 使串口服务器能够以TCP/UDP模式在网口和串口端进行双向232 /485通信。实验证明本服务器能使传输数据实时, 准确。

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

  1 硬件系统的设计

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

  

 

  图1 系统结构框图

  2 软件系统的实现

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

  2.1 TCP / 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所示。

  

 

  图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.2 LW 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所示。

  

 

  图3 底层程序框架图[!--empirenews.page--]发送主线首先是以太网初始化函数( 1)开始,调用链路层发送函数(2)并增加各层协议头, 再调用RTL8019发送函数(9)发送数据。

 

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

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

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

  

 

  图4 TCP协议数据传输界面

  由于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所示。

  

 

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

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

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

  

 

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

  3.结论

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

  

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

VGA接口主要用于将计算机的数字图像信号转换成模拟信号,从而可以在显示器上显示。这种接口通常包含15个针脚,分成3排,每排5个孔,可以传输红、绿、蓝三种基本颜色的信号以及水平和垂直同步信号。

关键字: vga接口 信号 电压

上海2023年9月21日 /美通社/ --由工业和信息化部、发展改革委、科技部、商务部、中国科学院、工程院、中国贸促会、上海市人民政府共同举办并以"碳循新工业 数聚新经济"为主题的第二十三届工博会,9...

关键字: 激光切割 SCARA OS STORE

(全球TMT2023年9月15日讯)企业移动性管理领域企业42Gears宣布推出AstroStatus,这是一种直观的事件沟通解决方案,旨在增强企业能力,让企业在云托管解决方案出现服务中断和意外故障时能随时向客户通报情...

关键字: STATUS RS OS GE

拉斯维加斯2023年9月15日 /美通社/ -- 美国当地时间9月12日,万众瞩目的美国国际太阳能展RE+ 2023在拉斯维加斯The Venetian Convention and Expo Center会展中心隆重召...

关键字: 新能源 OS SOLAR OCEAN

厦门2023年9月15日 /美通社/ -- Greenpath是美国一家提供全方位综合服务的回收商、加工商和制造商,已有25年的历史,在加利福尼亚州、内华达州和德克萨斯州均设有分公司。Greenpath拥有处理各种物料的...

关键字: GREEN ST 金属 OS

印度班加罗尔2023 9月15日 /美通社/ -- 企业移动性管理领域的领先企业 42Gears 十分高兴地宣布推出AstroStatus,这是一种直观的事件沟通解...

关键字: STATUS RS OS GE

香港2023年9月12日 /美通社/ -- 优克联集团("优克联"或"该公司",纳斯达克股票代码:UCL)创建了全球领先的移动数据流量共享市场。该公司今日宣布旗下子公司深圳市优克联...

关键字: 移动数据 数据流 OS 智能硬件

印度班加罗尔2023年9月8日 /美通社/ -- 下一代数字化和咨询服务的全球领军者Infosys (NSE, BSE, NYSE: INFY) ,近日宣布在《IDC MarketScape:2023年全球人工智能服务供...

关键字: IDC MARKET 人工智能 OS

深圳2023年9月8日 /美通社/ -- 近日,超算领域国际顶级会刊SC23公布了论文入选名单,由微众银行区块链团队发表的论文——《FISCO-BCOS:An Enterprise-grade Permissioned...

关键字: 区块链 OS 开源 联盟链

进入神经发育和神经退行性研究领域 德国海德堡2023年9月6日 /美通社/ -- 欧健生物医疗集团(European Wellness Biomedical Group,以...

关键字: 新唐 AN AD OS
关闭
关闭