当前位置:首页 > 工业控制 > 工业控制
[导读]介绍了多串口通讯在DOS平台上的软件设计,采用C语言进行编程,可以方便的移植到其他的平台上。

作者Email: liang_yue0625@sohu.com

摘    要:提出了一种在PC/104上进行多串口通讯的设计方法,介绍了多串口通讯在DOS平台上的软件设计,采用C语言进行编程,可以方便的移植到其他的平台上。

关 键 字:串行通讯;PC104;

0 引 言

    目前,最先进的嵌入式工业计算机PC/l04,以其优良的品质、高可靠性及模块化,广泛应用于工业控制、航空航天、军事、医疗、消防设备、智能仪器仪表、导航、通讯、数控、自动化生产设备的数据采集、便携式计算机等领域。而在实际的应用中,有时需要借助微机的数据处理能力和丰富的软件资源,使组成的系统功能更为强大。这样必须实现PC机与PC104之间的通讯,在通常实时性要求不高,数据量不大的情况下,可以采用串口进行通讯,但通常一般的PC机只配有两个串口,在控制领域有时候是不够的,而基于PC/104结构的嵌入式系统可以根据实际的要求通过简单的搭积木的方法进行配置,其功能模块比较丰富,当进行多串口控制时可以选用基于PC104的多串口卡(一般扩展4~6个串口)。

    本文采用的是HXL-COM4A的4串口扩展板,该板上集成了高性能的16C554控制芯片(相当于4个16C550),每个通道有独立的16字节接收缓冲器和16字节发送缓冲器,可以达到更高的通讯速率而无需占用过多的CPU资源,并且每个串口可配制成RS232RS422RS485模式。

1  多串口通讯软件的设计:

    由于大部分的基于PC/104软件的设计都是在DOS平台上的,所以本文以BRAODLORD C为编译环境进行设计多串口通讯软件的设计。程序框图见图1


    一般情况下串口的地址是:COM1:3F8 COM2:2F8 COM3:3E8 COM4:2E8 COM5:3A8   COM6:2A8, 如有区别参照多串口卡的手册。

    1.1串口波特率和数据格式的设置:

    首先向LCR(线路设置寄存器)的高位写入1,然后在设置波特率:在基地址和基地址+1的地方写入的数据为1843200/(16*波特率)。然后设置LCR,最后设置Modem控制寄存器和中断允许寄存器。

    代码如下:

void init_com(int com_X)
{ outportb(com_X+3,0x80);
outportb(com_X,0x06);
outportb(com_X+1,0x00);//波特率为19200
outportb(com_X+3,0x0b);//数据格式:8个数据位,一个停止位,奇校验
outportb(com_X+4,0x0b);//允许将中断信号送到系统总线
outportb(com_X+1,0x01);}//允许接收产生中断

    1. 2中断的允许和禁止:

    一般情况下,串口通常配置成接收产生中断,发送不产生中断。在PC/104上的设计可以参照PC机的设计方式,中断控制器为两片8259,一片为主片,另一片为从片。当串口所用的中断为8以下时,设置主片8259的IMR(中断屏蔽寄存器)。当中断为8以上时,要设置从片的8259的IMR。

    代码如下:

void OpenInterrupt(unsigned char IntNum)//开中断
{
 int mask;
char ControlWord[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
 mask=inportb(0x21);
 if(IntNum<8) outportb(0x21,mask&ControlWord[IntNum]);
 else
{ outportb(0xa1,inportb(0xa1)&ControlWord[IntNum-8]);
  outportb(0x21,inportb(0x21)&0xfb);
 }
}
  void CloseInterrupt(unsigned char IntNum) file://关中断
{
char
ControlWord[8]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
if(IntNum<8){outportb(0x21,inportb(0x21)|ControlWord[IntNum]);}
else outportb(0xa1,inportb(0xa1)|ControlWord[IntNum-8]);
}
    串口的中断可以在PC/104的板子上参照手册,进行跳线设计。

    1. 3串口通讯的中断向量设置:

    当中断小于8时,中断向量地址为中断号加8,当中断大于8时,中断向量地址为中断号加0x68。
下面是完整的串口初始化程序(以COM1为例)

void int_setup(unsigned char comPort,char control)
{
 static void interrupt (*old_int)(void);
 static void interrupt (*new_int)(void);
 int baseAdd;
 if(comPort<8) baseAdd=8;
 else baseAdd=0x68;
 disable();
 if(control!=0)//当control为1时是串口的初始化,为0时是恢复系统状态
{init_com(comBaseAddr[comPort]);
 switch (comPort)
 {case 4: old_int = oldhandler_com1;
  new_int = handler_com1;
  break; }
old_int = getvect(baseAdd+comPort);
setvect(baseAdd+comPort, new_int); file://保存旧中断向量地址,并设置新的中断向量地址
 OpenInterrupt(comPort);}
else
 {CloseInterrupt(comPort);
 setvect(baseAdd+comPort,old_int);}//恢复中断向量地址
enable();}

    1. 4串口数据的发送和接收:

    当串口需要发送数据时,只要将待发送的数据以字符串的形式依次写入基地址中即可。当接收数据时,由于每接收到一个字符便产生一个中断,因此要在中断服务子程序的最后向8259写入20H到地址20H即可,如果中断号大于8,还要向从片8259写入20H到地址A0H。

2 串口的硬件设计

    目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口。若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,只需要如图2进行连接即可。

    目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口。若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,只需要如图2进行连接即可。

    3 结束语:

本文较全面介绍了基于PC/104的多串口卡的通讯软件的设计,提出了串口通讯应注意的问题,并将此串口通讯软件应用在大庆油田的数据采集系统中,系统工作稳定,可靠。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭