当前位置:首页 > 通信技术 > 通信设计应用
[导读]LPC2364的串口转网口专用协议卡的研制方案 摘要:给出了采用LPC2364芯片为处理器,并利用以太网中TCP协议来设计串口转网口模块,从而实现数据传输方式转换的一种设计方法。该方法中的软件采用F

LPC2364的串口转网口专用协议卡的研制方案

摘要:给出了采用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地址初始化,网关地址初始化,子网掩码初始化,网口初始化。串口初始化等。其主函数代码如下:
   


    图2所示是其主函数流程图。主函数中可进行uIP协议栈初始化和串口初始化的并使并设置,同时通过操作系统初始化来建立两个通讯任务,然后就可以开始操作系统的任务调度。图3所示是系统中的串口任务控制流程。


               

5 协议转换卡的通讯试验
    本文的协议转换卡并不是通用意义上的协议转换卡,而是基于特定串口通讯协议的转换卡。该卡在规定的协议中,由网口接收到的数据可以分为两种,一种是控制命令,一种是查询命令。在软件中,串口任务和网口任务有两个共享的数据缓冲区,通过串口任务可检查缓冲区,如果缓冲区中有数据,则根据通讯协议判断这些数据是否是正确的指令,若是正确的指令,则判断是查询命令还是控制命令,若是控制命令,则将此控制命令发送出去,并清空缓冲区;若是查询命令,网口任务则会到另一个缓冲区中取出数据,并用协议栈将此数据发送出去,同时清空缓冲区。通过用TCP通讯客户端检测工具和串口调试助手调试可以发现,如果TCP通讯客户端发出的是查询命令,则网口任务自动到预定的缓冲区取出数据,并发送出来,同时在TCP通讯客户端上显示出来;如果TCP通讯客户端发出的是控制命令,则等待串口调试助手的返回数据。如果有返回,则在TCP通讯客户端上显示出来;如果串口助手没有返回,软件控制则一直发送控制命令,直到收到正确的回复。

6 结束语
    本文所设计串口转网口的转换卡是具有串口通讯协议的转换卡。协议卡对收到的数据会进行分析和判断,进而决定数据的发送方式,从而实现FreeRTOS操作系统和uIP协议栈的结合。此外,由于FreeRTOS操作系统和uIP协议栈对用户而言是透明的,因此,该模块可以方便地随时修改串口通讯速率、串口通讯格式、IP地址、网关、子网掩码等功能.并充分利用FreeRTOS操作系统的稳定性与可靠性以及实时性好等特点,同时可发挥以太网通讯效率高的特点,来为实施数据转换提供方便。

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

串行通信需要传输的数据通过调制器(Modulator)将数据转换为模拟信号,经过信号调制(Modulation)后在传输线上传输,接收端通过解调器(Demodulator)将信号解码还原成原始数据。

关键字: 串口 串行通信 并行通信

51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺...

关键字: 单片机 全双工 串口

串口是“串行接口”的简称,即采用串行通信方式的接口。串行通信将数据字节分成一位一位的形式在一条数据线上逐个传送,其特点是通信线路简单,但传输速度较慢。因此串口广泛应用于嵌入式、工业控制等领域中对数据传输速度要求不高的场合...

关键字: 串口 RS232 同步传输

串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片机为例,介绍几种接收不定长数据的方法。

关键字: 单片机 串口 STM32

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

摘要:多功能电能表在配电系统中应用广泛,其计量的准确度对企业管理和考核至关重要,因此在设计多功能电能表时需要对其进行校准,满足一定应用等级。常规的多功能电能表校准方法是以电能脉冲校准为主,现提出一种基于C#和功率校表法的...

关键字: 多功能电能表 串口 波特率

摘 要:为了能通过串口采集电能参数,完成一种基于串口的三相电能采集设备的研制,设计了电能采集设备的硬件和软件部分。其中硬件采用MCU+专用电能计量芯片的结构,结构简单;软件则用于实现输入、输出、三相电能参数的采集和串行通...

关键字: 电能采集 ATT7022B MSP430 串口

如何确定时基假如要测量的波特率为9600,则每一比特位的时间为:1/9600≈104μs,一般示波器横向上每个大格子里5个小格子,要想看清一比特位一般需要一个小格子就够了,则时基为:104μs*5=520μs,也就是说时...

关键字: 串口

VivadoML最新版2021下载方法:《安装Vivado2021.1ML版,编译时间真的会减少吗?》今天我们通过zedboard串口使用的实例来简单介绍vivado和vitis的使用步骤。1,首先打开软件,新建一个空白...

关键字: 串口 zedboard vi
关闭
关闭