- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
PAGE 1
基于LWIP的嵌入式串口服务器的设计与实现
摘 要 文中提出了一种低成本、高性能的嵌入式串口服务器的硬软件设计方案。该服务器以ARM7芯片LPC2210为掌握器, 采纳RTL8019以太网掌握器处理网络数据, TL16C554异步通信组件处理串口数据。对轻巧TCP/ IP协议栈LW IP在μC/OS - Ⅱ实时操作系统中进行了移植, 并对16路串行通道设计了实时多任务方案, 使串口服务器能够以TCP/UDP模式在网口和串口端进行双向232 /485通信。试验证明本服务器能使传输数据实时, 精确?????。 随着数字信息技术和互联网的广泛应用, 以操作系统和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所示。 图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模
您可能关注的文档
- 基于LLC隔离的光伏并网逆变器设计方案.docx
- 基于LLC拓扑的宽电压输出LED驱动电源研究.docx
- 基于LM1893的电力线载波通信系统设计方案.docx
- 基于LM2596的不间断直流电源设计方案.docx
- 基于LM3445的传统非隔离式解决方案.docx
- 基于LM3445非隔离式LED应用改进型线性稳压解决方案.docx
- 基于LM25037的车载逆变器设计方案.docx
- 基于LonWorks的LED节能照明控制策略的研究.docx
- 基于LonWorks与CDPD技术结合的无线远程环境监控系统.docx
- 基于LPC2103的三相电信号数据采集系统的设计方案.docx
- 基于LXI总线的1553B通讯模块设计与开发.docx
- 基于LXI总线的高效锂离子电池测试系统设计方案.docx
- 基于LYTSwitch-4的大功率LED电源解决方案.docx
- 基于Matlab/Simulink环境的DSP算法开发方案.docx
- 基于MATLAB的PID控制系统参数调节方案.docx
- 基于Matlab的孤立逆变源的设计方案.docx
- 基于MAX+plusⅡ开发平台的EDA设计方法.docx
- 基于MAX15006线性稳压器实现汽车静态电流化.docx
- 基于MAX16834的112.5WboostLED驱动器方案.docx
- 基于mbedTLS实现的嵌入式固件知识产权保护方案.docx
原创力文档


文档评论(0)