0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术:EM9x60串口通讯基本应用

英创信息技术 作者:英创信息技术 2019-10-17 11:17 次阅读

串口通讯,是工业自动化、智能终端、通信管理等领域传统且重要的通讯手段。最常用到的串口通信模式往往是两种:RS232RS485。其中RS232通讯方式有三线制和九线制两种。

英创所有型号的嵌入式主板均提供有串行通信接口(串口),根据不同的主板型号,串口的数量也不同,如: ETR232i、 ETR186提供有3个串口;EM9000、EM9161提供有4个串口;EM9260、EM9360、EM9160则直接提供多达6个串口。除了系统板载的串口以外,客户还可根据自己的应用进行灵活扩展。基于英创的嵌入式系统的精简ISA总线或专用的扩展底板,可扩展出更多的通用串口,现可用的扩展配件有:ETA502、ETA503、ETA504。所有的串口的通讯的最高波特率均能达到115200bps。

英创工控主板直接提供的串口既有标准的RS232接口,也有TTL电平的串行接口,这意味着,TTL电平的串口只需要添加简单的外围电路驱动,就可直接转换为标准RS232、RS485接口以及RS422接口。某些用户(如电力系统用户)还可以根据实际情况需要,在串口上添加光电隔离电路,以达到保护端口的目的。英创公司给用户提供的开发底板(随基本开发套件提供)就充分地考虑了用户对于串口应用的多方面要求,既引出了RS232接口,也引出了 RS485接口,满足了用户灵活使用的需要。

串口扩展模块

英创公司所提供的基于系统提供串口的嵌入式主板,均是通过嵌入式主板上的插针的方式,作为与用户的接口。这些串口,能够满足大多数的应用环境。除止之外,还可以使用英创公司的串口扩展模块进行扩展。

ETA503

ETA503是基于英创公司的嵌入式系统所特有的精简ISA总线,扩展4个串口的扩展模块。4个串口均是9线制通用RS232电平信号

该模块可以通过ISA总线在英创公司的所有嵌入式主板(X86系列及ARM系列)中使用,即可以通过短的排线连接在ISA总线上,这种方式可以快速实现功能评估,也可以将ETA503当作一个元器件一样,用插针插在应用系统中所提供的插座上(ARM9+ETA503应用方案示列参考:《WinCE系统多串口扩展方案》)。

RS485通讯接口

在很多的工业应用场合中,长距离的通讯,仍是采用RS485的通讯方式,这种方式的应用简单、通讯可靠、成本也很低。

其接法是:将通用的串行通讯口的接收(RX)与发送(TX)分别接至RS485接口芯片的接收输出(RO)与发送输入(TI)口,再用一个信号来控制RS485的收/发状态。英创公司提供的RS485通讯电路中,对RS485的收发控制采用了自动收/发控制电路。这样,一是减少了对系统资源的占用,二是保持与RS232一样的驱动程序,从而提高程序的执行效率。

自动收/发控制原理:

在通讯空闲状态,TXD(数据发送信号)为高, A点为高,B点经R21给C11充电,其充电时间为T1,该时间定为串口发送一个字节所需的时间,由R21与C11的参数来确认。充满后,R/T为低,RS485处于接收数据的状态。

在发送数据时,TXD起始位产生第一个下降沿,使A点为低,B点经过D5进行快速放电,使R/T很快变为高,RS485处于数据发送状态。在发送过程中,当TXD变成高电平时,C11通过R21缓慢充电,使R/T仍然保持在发送状态,可有效吸收总线上的反射信号。当RC充电结束,使R/T转入接受状态时,总线上的上拉、下拉电阻将维持TXD高电平的发送状态,直至整个bit发送结束。

当数据发送完毕以后,TXD变为高电平,RC又开始充电,即经T1时间后,RS485又转换为数据接收状态。

虽然RS485接口芯片具有一定的抗浪涌能力,但是在很多的工业现场,仍存在对接口芯片及系统有威胁的干扰。所以通常会采取一定的措施来进行系统的保护。如光电隔离与TVS等。需注意的是,如加了光电隔离,必须使其电源也隔开,这样才能起到隔离作用。

ETA232

在英创所提供的嵌入式主板中,即给了RS232电平信号的串行通讯接口,也给出了TTL电平信号的串行通讯接口,且TTL电平信号的串口支持MODEM控制。如用户在使用中,要用到TTL电平信号的串口来作RS232的通讯或是控制MODEM,则需要将TTL电平信号转换为RS232电平信号。为此,英创公司也提供了相应的转换模块ETA323,将TTL接口的信号转换为9线制标准的RS232接口。

基于英创公司的嵌入式系统的串口的基本应用

对于英创公司所提供的串口通讯的驱动,均是以中断服务的形式,实现与底层硬件间的通讯。

下面以X86系列为例,说明其最基本的应用原理:

中断服务程序的任务,就是对串口数据的接收及用户数据的发送进行处理并对数据环形BUFF管理的过程。

当有数据被接收时,中断服务程序便将所接收到的数据从硬件模块中取出,并按一定的规则送入到指定的串口的接收BUFF中存贮。用户使用GetInputData( )函数来读取接收BUFF中的数据。应注意的是,GetInputData( )函数一次只能从BUFF中读取一个字节的数据,所以,在应用程序中,应重复调用这个函数直到函数的返回值为-1时,才表明将接收BUFF中的数据全部读出。

当用户要发送数据时,调用PutOutputData ( )将用户已准备好的数据,依次填入数据发送BUFF中。在数据填完后,调用StartSend( )启动串口发送中断,这时数据的发送将由中断服务程序来完成。应注意的是,PutOutputData ( )函数一次也只能将一个字节的数据填入BUFF中,要反复调用该函数直到所有的数据都被填入BUFF。如PutOutputData ( )函数返回了-1,则表明BUFF已被填满,再往BUFF中填数据,将不会被接授。

对于用户的应用程序,可以参考以下的说明:

1、 用户可以用查询或定时或其它的方式,对串口的数据读取。如确认接收BUFF中有数据存在,建议一次将其全部读出。读取串口数据的参考程序如下:

int ReadRxdBuff( int ComIdx , unsigned char *RxBuff , int MaxLen )

{

int i1,i2;

for(i2=0 ; ; )

{

// 检查某个串口是否有数据,如没有数据则退出,否则,将数据放入缓存器以便使用

i1 = GetInputData( ComIdx );

if( i1==-1 )

break;

RxBuff[i2]=char ( i1 );

i2++;

if(i2==MaxLen)

break;

}

return i2;

}

函数的参数说明如下:

ComIdx 要读取的串口序号

*RxBuff 读出的数据要存放的数据缓存器

MaxLen 读出数据的最大长度,以限制一次性读取的长度

2、当用户有数据需要发送时,首先应将要发送的数据准备好,再依次将的要发送的数据一次性全部填入对应的发送BUFF中。再启动数据发送。应注意的是,要发送的数据的长度要有一定的限制,不能超出发送BUFF的长度。数据发送的参考程序如下:

int SendTxdBuff( int ComIdx , unsigned char *TxBuff , int TxLen )

{

int i1,i2;

for( i2=0; i2 <>

{

i1=PutOutputData( ComIdx ,TxBuff[i2] );

// 每填入一个数据,建议检查一下BUFF是否被填满

if( i1==-1 )

break;

}

// 数据被填入BUFF后,应启动发送中断。让中断程序来完成数据的发送

StartSend( ComIdx );

return i2;

}

函数的参数说明如下:

ComIdx 要发送数据的串口序号

*TxBuff 要发送的数据

TxLen 发送数据的长度

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
收藏 人收藏

    评论

    相关推荐

    工控主板EM335x串口扩展方案

    模块均通过其CN1插座与EM335x的精简ISA总线相连,具体信号说明如下:  由于ETA508都是从EM9X60产品线发展起来的,为了兼容两种产品线,ISA_SD4 – ISA_
    发表于 07-05 16:01

    EM928x/EM335x/ESM335x系列主板新CAN驱动使用说明

    BUFFER到8K,可以缓存更多CAN包附录  《创新CAN驱动接口调用方法及说明》  《CAN错误帧定义》  成都信息技术有限公司  http://www.emtronix.c
    发表于 01-03 15:54

    支持Linux高级客户自行移植内核

    上市)  该项服务具体说明和实施流程参见:支持客户进行Linux移植  需要该服务的客户需与签订技术保密协议,并承诺严格履行协议:
    发表于 01-18 13:52

    工控主板产品选型指南

      成都信息技术有限公司是一家专注于嵌入式工控主板研发、销售与服务的高科技公司,在嵌入式领域已有超16年的从业经历。公司的主板产品在
    发表于 02-28 11:28

    嵌入式主板的无线通讯解决方案

    ETA6210-WiFi√√ IntelWireless 3160WiFi√ - RalinkRT3070LWiFi√ -成都信息技术有限公司http://www.emtronix.com
    发表于 03-24 14:00

    串口WiFi方案使用说明

    上的编程方法》,《串口WiFi在WinCE工控主板上的编程方法》。成都信息技术有限公司http://www.emtronix.com
    发表于 04-05 15:52

    EM9287升级至EM3357

    TI AM3352),为EM9287的换代升级提供了一个更具性价比的选择,感兴趣的用户可与工程师联系。成都
    发表于 04-26 10:42

    主板中预装Modbus通讯协议

    modbus_Master.h,与原来的静态库保持不变,相应各个API函数的说明请参见网站技术天地文章《Wince下的Modbus主控通讯协议》、《
    发表于 10-20 10:40

    英利Linux工控主板使用必读(EM9x60

    英利EM9x60系列工控主板包括两个型号:EM9160和EM9260。为便于读者了解和使用英利产品,本手册中一些部分会以EM9160为例进行讲解;然而,本手册完全适用于这两个产品。
    发表于 11-09 21:47 33次下载

    英利Linux工控主板EM9x60使用手册免费下载

    本文档的主要内容详细介绍的是英利Linux工控主板EM9x60使用手册免费下载。用户第一次使用 EM9x60 往往是购买开发评估套件,开发评估套件包括如下几部分: EM9x60 工控主板一块:核心
    发表于 11-21 08:00 3次下载

    英创信息技术EM9X60系列嵌入式主板与122x32点阵液晶的硬件连接浅谈

    英创公司的EM9X60系列嵌入式主板能够自动识别市面上常用的128x64、240x128、320x240三种点阵液晶屏,但是,部分客户由于各种原因采用了122x32的点阵液晶,这种屏不在英创公司支持
    的头像 发表于 11-04 09:39 1586次阅读
    英创<b class='flag-5'>信息技术</b><b class='flag-5'>EM9X60</b>系列嵌入式主板与122x32点阵液晶的硬件连接浅谈

    英创信息技术EM9X60利用串口实现ISO7816介绍

    英利EM9160、EM9460系列产品,均以丰富的串口资源为特色,已大量地应用于工业环境中,特别是在电力系统中应用。最近公司即将推出一款新的产品EM9560工控主板,该主板是是以
    的头像 发表于 01-15 14:49 2193次阅读
    英创<b class='flag-5'>信息技术</b><b class='flag-5'>EM9X60</b>利用<b class='flag-5'>串口</b>实现ISO7816介绍

    英创信息技术Linux调试串口转换为应用串口的方法

    英创公司的EM9X60系列工控主板(包括 EM9160、EM9360、EM9460、EM9660等)均具有7路物理
    的头像 发表于 01-16 09:28 1283次阅读

    英创信息技术EM9x60主板串口的RTS硬件方向控制方法

    英创EM9x60系列工控主板均板载高速全双工物理串口,其中除了ttyS3引出方式为232电平以外,其余串口均以TTL电平引出,客户可以在应用底板上将这些串口扩展为标准RS232或RS4
    的头像 发表于 01-17 08:59 1543次阅读
    英创<b class='flag-5'>信息技术</b><b class='flag-5'>EM9x60</b>主板<b class='flag-5'>串口</b>的RTS硬件方向控制方法

    英创信息技术EM9460 USB虚拟串口应用简介

    ,最方便的方法就是利用EM9460中的USB device设备口和PC机的USB主控口相连,在EM9460的USB device驱动实现将其映射为一个虚拟串口的功能,PC和EM9460
    的头像 发表于 02-03 08:59 1420次阅读
    英创<b class='flag-5'>信息技术</b><b class='flag-5'>EM</b>9460 USB虚拟<b class='flag-5'>串口</b>应用简介