下面是小编整理的单片机串口通讯协议,本文共11篇,欢迎您阅读分享借鉴,希望对您有所帮助。

篇1:单片机串口通讯协议
1.约定
将计算机方称为上位机,将单片机方统称下位机。
数据格式均采用二进制码。
2.通信过程描述
通信采用主从式,一问一答,非问莫答,避免下位机同时发送数据产生冲突。
联机过程:
1)握手
每次运行时,上位机对每一个下位机均发送握手命令,下位机接收正确回送握手成功,否则回送错误。上位机据此来确定下位机的状态(是否联机)。
2)命令
通常状态下,上位机发送相关命令,下位机根据命令回送相关数据。
3.通信数据帧格式
1)起始符:标识一次发送的开始1字节,默认位23H
2)下位机类别:区分下位机的类别,不用时为0
3)下位机地址号:指示下位机的序号,不用时为01字节。如15号机:0FH
4)命令:2字节,区分不同的'操作
5)校验标志
1字节,无校验时为0,异或校验时为1,CRC校验时为2
6)数据长度
2字节,指示实际有效数据的个数,不用时为0
7)数据:实际有效数据
数据长度个字节
8)校验码:有效数据的校验码,如校验标志为0,此字节省
9)结束符:标识一次发送的结束
1字节,正确为5AH,错误为55H
下位机回送数据格式同上。
4.详细命令与数据格式----举两个例子
1) 握手命令 0x0A,0x0D
格式:起始符(1)+下位机类别(1)+下位机地址号(1)+命令(2)+校验标志(1)+
数据长度(2)+ 结束符(1)
例: 23 00 00 0A 0D 00 00 00 5A
2) 下载命令 0x44,0x46
格式:起始符(1)+下位机类别(1)+下位机地址号(1)+命令(2)+校验标志(1)+
数据长度(2)+ 数据(?)+校验码(1)+结束符(1)
其中:回送时 状态=0:无申请;
例:23 00 00 44 46 01 00 05 00 01 00 00 00 01 5A
频率特性实验通讯步骤
1、握手: 上位机发送指令- 23 00 00 0A 0D 00 00 00 5A
下位机返回数据- 23 00 00 0A 0D 00 00 00 5A
2、启动指令: 上位机发送指令- 23 00 00 04 00 00 00 10 原有16个数据 5A
下位机无数据返回
3、查询指令: 上位机发送指令- 23 00 00 04 00 00 00 10 08 15个任意数据 5A 下位机如果有转换数据则返回- 23 00 00 10 00 00 07 E4 7E4H个数据 5A
或者- 23 00 00 10 00 00 00 C8 C8H个数据 5A
下位机如果没有转换数据则无数据返回
其他返回数据: 原来返回 -EE EE EE EE 改为返回- 23 00 00 EE 0D 00 00 00 5A 原来返回 -AA AA AA AA 改为返回- 23 00 00 AA 0D 00 00 00 5A
首先进行握手,握手通过后发送启动指令,延时后发送查询指令,收到转换数据后处理,没收到转换数据,再延时后发送查询指令,反复进行。
篇2:串口通讯服务器・什么是网络协议
串口通讯服务器・什么是网络协议
网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它定义了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。
TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的`标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。
IPX/SPX是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP(Sequenced Packet Protocol:顺序包协议)协议,它们都是由novell公司开发出来应用于局域网的一种高速协议。它和TCP/IP的一个显著不同就是它不使用ip地址,而是使用网卡的物理地址即(MAC)地址。在实际使用中,它基本不需要什么设置,装上就可以使用了。由于其在网络普及初期发挥了巨大的作用,所以得到了很多厂商的支持,包括microsoft等,到现在很多软件和硬件也均支持这种协议。
NetBEUI即NetBios Enhanced User Interface ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。总之NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,局域网的计算机最好也安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。
篇3:基于PC/104的多串口通讯的设计
摘 要:提出了一种在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资源,并且每个串口可配制成RS232\RS422\RS485模式。
篇4:基于PC/104的多串口通讯的设计
由于大部分的基于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的多串口卡的通讯软件的设计,提出了串口通讯应注意的问题,并将此串口通讯软件应用在大庆油田的数据采集系统中,系统工作稳定,可靠。
篇5:串口通讯服务器・什么是接口类型
串口通讯服务器・什么是接口类型
终端服务器常见的接口类型有以下几种:RJ-45接口
RJ-45接口是以太网最为常用的接口,RJ45是一个常用名称,指的是由IEC (60)603-7标准化,使用由国际性的接插件标准定义的8个位置(8针)的模块化插孔或者插头。
RS232、RS-422与RS-485接口
RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的'单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。。
并口(LPT口)
并口(Parallel Port/Interface)是电脑早期使用的25针接口,俗称打印口。并口采用25针的双排插口,除最普遍的应用于打印机以外,还可用于连接扫描仪、ZIP驱动器甚至外置网卡、磁带机以及某些扩展硬盘等设备。
USB接口
USB(Universal Serial Bus)通用串行总线是由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB传输速度12Mbps,最新USB2.0可达480Mbps;电缆最大长度5米,USB电缆有4条线,2条信号线,2条电源线,可提供5伏特电源,USB电缆还分屏蔽和非屏蔽两种,屏蔽电缆传输速度可达12Mbps,价格较贵,非屏蔽电缆速度为1.5Mbps,但价格便宜;USB通过串联方式最多可串接127个设备;支持即插即用和热插拔。
篇6:基于多单片机的串口扩展设计论文
1 前言
笔者在用单片机开发一款称重仪表时,功能较多,对串口的需求很高。需要的串口数量多,至少要五个串口,包括称重传感器通信串口,电脑上位机通信串口,GIM900A 通信串口,大屏幕数码管显示的通信串口,打印模块的通信串口等。而且对串口要求稳定性高,大部分串口都要求实时双工通信。根据实际情况和产品串口需求,采用不用的方法进行串口扩展,主要用到了模拟串口和多单片机实现串口扩展。
2 串口扩展的一般方法
(1)模拟串口。模拟串口利用其他单片机引脚模拟串口收发时序进行串口扩展。这种串口扩展,缺点比较明显,通信速率慢,可靠性不高,占用CPU 资源较多。高速双工通信时一般不用此方案进行串口扩展,低速情况下可以考虑。笔者的项目中大屏幕数码管显示就用了这种方案,显示的时候只发不收,单向通信,波特率要求低,最高不过9600bps。
(2)利用专门的串口扩展芯片处理。串口扩展芯片进行串口扩展,通信稳定性高,能达到一般的串口要求。市场上的串口扩展芯片,性能不同,价格也不一样,但普遍成本较高,少则二三十元,多则七八十元,不利于产品的成本控制。串口需求较多时,一块串口扩展芯片上串口数量不足,还需要多块串口扩展芯片级联,更增加了成本。
(3)利用多串口单片机。目前市场上有多串口的单片机,很多低成本单片机都自带两个串口,比如stc12 多串口系列。用三串口及其以上的单片机成本更贵。
(4)基于多单片机的串口扩展设计。在一定成本要求下,结合目前单片机产品自身的优势,利用多单片机进行串口扩展,也是一种串口扩展的方案。一般c51 系列单片机自带双串口的只要几元钱,完全可以把单片机用来做串口扩展,而且有的单片机自带spi 通信接口,可以很方便的实现主从单片机之间的级联和通信,同时双单片机工作时,可以利用从单片机处理一定的程序,减轻主单片机的.负担,达到“双核”效果。
篇7:基于多单片机的串口扩展设计论文
3.1 串口扩展系统框图
整个系统由两块单片机构成主从结构,主机完成产品的大部分功能,从机只是进行了串口扩展,扩展出了两个双工硬件串口,如果有需要,也可以分担部分主机的其他功能。两者之间通过SPI 硬件接口通信,该硬件SPI 总线是一种全双工、高速、同步的通信总线,支持主模式和从模式两种操作模式,主模式中支持高达3Mbps 的速率,完全可以完成主机和从机之间的可靠通信。主机和从机的串口通信,和一块单片机使用时的用法一样,只是先要经过SPI 传输。当需要向从机串口发数据时,先要通过主机的SPI 通信送给从机,再通过从机串口发给外围模块;当需要接收从机串口数据时,先从机接收到串口数据,从机再利用SPI 传输给主机。在进行软件开发时,只要定义好主机和从机的SPI 通信协议,即可完成可靠的串口数据收发。
3.2 主机和从机之间的SPI 通信
主机和从机串口之间需要SPI 通信做桥梁,因此主从机之间的SPI 通信显得极其重要,必须要求高速、可靠、实时,一次SPI 采用中断完成。主机部分需要用到常用的四个函数,即主机SPI 初始化,SPI 主从机之间的数据交换,向从机发送数据,主机SPI 中断接收等。
1) 主机SPI 初始化:
SPDAT=0;
SPCTL=0xfd;
SPSTAT=0xc0;
IE2=IE2 | 0x2;
2) 主机SPI 数据交换
SPDAT = dat;
while (!(SPSTAT & SPI_SPIF));
SPSTAT = 0xc0;
return SPDAT;
3) 向从机发送字符串数据
SPCTL = 0xfd;
IE2=IE2 & 0x01;
SPISS=0;
4)SPI 接收中断函数
uchar ucRecvSpi;
SPDAT=SPDAT;
SPSTAT = 0xc0;
ucRecvSpi=SPDAT;
??//SPI 接收到的数据处理
?循环SPI 数据交换
发送字符串
SPISS=1;
SPCTL = 0xec;
IE2=IE2 | 0x3;
从机部分也需要用到主机一样的四个函数,即从机SPI 初始化,SPI 主从机之间的数据交换,向主机发送数据,从机SPI中断接收等。程序函数与主机大部分相同,只有细微区别。在从机SPI 初始化时,SPCTL 控制寄存器初值为0xec。
3.3 扩展的串口处理
从机自带的两个双工串口即是扩展出来的串口,要实现收发数据,需要用到基本的3 个函数,即从机串口初始化,从机串口向外围模块发送数据,从机中断接收数据。串口4 和串口5 函数类似,下面只列举串口4 的初始化函数部分。
1) 串口1 初始化
TMOD = 0x20;
SCON = 0x5a;
TH1 =TL1= -3;
TR1 = 1;
ES = 1; EA = 1;
2) 串口接收中断
RI = 0 ;
Buf[i]=SBUF;// 接收串口数据存入数组
if (SBUF==0x0a && Buf[i-2]==0x0d)
接收到结束符,则向主机发送串口数据。
4 结语
本文中的串口扩展方法,实用性强,成本较低,能较好的实现串口扩展,同时利用多出的单片机,可以为主CPU 分担一定的任务,提供一定的硬件资源。
篇8:串口通讯服务器・什么是处理器主频
串口通讯服务器・什么是处理器主频
主频,就是CPU的时钟频率,简单说就是CPU运算时的工作频率(1秒内发生的同步脉冲数)的简称,单位是Hz。随着计算机的发展,主频由过去MHz发展到了现在的GHz(1G=1024M)。通常来讲,在同系列微处理器,主频越高就代表计算机的速度也越快,但对与不同类型的处理器,它就只能作为一个参数来作参考。另外CPU的运算速度还要看CPU的流水线的各方面的`性能指标。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。因此主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。篇9:串口通讯服务器・什么是内存类型
串口通讯服务器・什么是内存类型
目前远程访问服务器常用的内存有SDRAM和DDR两种内存。
(1)SDRAM
(2)DDR SDRAM
篇10:串口通讯服务器・什么是集成路由器性能
串口通讯服务器・什么是集成路由器性能
部分终端服务器产品基本都集成了路由器的功能,这样的好处在于能够有效降低成本,节省单独路由器设备的'投资,对于中小型办公选择带路由器功能的产品具有加高的性能价格比。相关术语:路由器
篇11:串口通讯服务器・什么是可运行系统
串口通讯服务器・什么是可运行系统
目前终端服务器支持的操作系统主要有WINDOWS类操作系统、UNIX类操作系统、Linux系统以及NETWARE操作系统等几大类。(1)WINDOWS类操作系统
(2)UNIX类操作系统
(3)Linux操作系统
(4)NETWARE操作系统
文档为doc格式