




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机与PC机串行通信中波特率的确定2007-01-23 嵌入式在线 收藏 | 打印 详细论述了单片机与PC机串行通信中波特率的确定原则和方法,特别给出了PC机与单片机串行通信中非标准波特率的计算方法及不同环境下实现的实例。 This article introduces the define principle and me thod of the baud rate of serial communication between PC and single
2、 chip microco mputer,and gives the computional method for standard baud rate and unstandard ba ud rate 目前由PC机作上位机而单片机作下位机的控制系统或数据传输系统已网络化,两者在异步通信中波特率的设定是一个首要解决的问题。如果设置不当会造成通信失败而无法进行数据交换,使整个网络处于瘫痪状态,因此正确设置波特率是一个极其重要的问题。 1 单片机异步通信口的特点及波特率的选定 MSC51系列单片机有一个全双工的异步通信口,他利用其RXD和TXD与外界进行通信
3、,其内部 有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。异步串行通信发送和接收数据的速率与移位脉冲同步。一般用51系列的T1定时器作为波特率发生器,T1的溢出率经二分频(或不分频)后又经十六分频作为串行发送或接收的移位脉冲,移位脉冲的速率即波特率。单片机的异步通信波特率与串行口的工作方式、主振频率Fosc及定时器T1的工作方式有关。一般通信中使T1工作于方式2(可重装时间常数方式),若Fosc取6 MHz,则波特率的计算公式如下: 其中:SMOD是可编程的(即PCON的第8位),由此公式计算出的波特率是不标准的波特率。
4、 2 PC机异步通信口及其波特率的设置 由于UART(通用异步接收/发送器)的产品型号很多,PC机和XT机都采用的是INS8250芯片, AT机采用的是NSI16450芯片,他们二者是兼容的。因此这里以8250芯片为例来说明PC机异步通信波特率的设定方法。PC机中有2个异步通信口,一个是COM1,其端口地址范围是3F8H3 FFH,另一个是COM2,其端口地址是2F8H2FFH。其与MODEM配合可以实现远距离通信。其波特率是标准波特率509 600 b/s。 8250内部有10个寄存器端口,其
5、中有一个除数锁存器,可以通过编程除数的大小来确定异步通信的波特率。8250使用的频率是1843 2 MHz的基准时钟输入信号,所以必须用分频的方法产生所需要的波特率(移位脉冲)。除数锁存器的值必须在8250初始化时设置,即把通信线路控制器的最高位(DLAB)置1,然后分两次把除数锁存器的高8位和低8位分别写入端口地址3F8H和3F9H(COM1),8250传送或接收串行数据时使用的时钟信号的频率是数据传输波特率的16倍,即波特率=16×除数/1 843 200。由此公式可以计算出几种标准波特率与除数的对应值如下:对应于波特率为1 200 b/s的除数锁存器的低8位值为60H;对应于波
6、特率为2 400 b/s的除数锁存器低8位的值为30H;对应于波特率为4 800 b/s的除数锁存器低8位的值为18H;对应于波特率为9 600 b/s的除数锁存器低8位的值为0CH。 3 用PC机的汇编语言设计的串行通信程序中波特率的设定 PC机的ROM BIOS串行通信管理程序为14H号中断处理程序,他可支持DTE与DCE间的通信,也能支持两个DTE间用MODEM连接方式的RS232C接口通信。BIOS串行通信管理程序的功能是:串行口初始化、发送数据字符、接收数据字符和取串行口状态。他是利用查询方式来实现数据字符的
7、接收和发送,但当查询超时一定时间后就不再继续查询,而认为是线路故障或对方未准备好,并通过返回参数中的超时标志来表示操作失败。 BIOS INT 14H的中断功能调用的入口和出口参数如下: 例如要设计用COM1来发送字符,波特率为1200 b/s,8 个数据位,1个停止位,采用查询方式无效验位,则初始化程序如下: 4 利用Turbo C编写的PC机通信程序中波特率的设定 Turbo C函数库中提供了专门的调用BIOS串行软中
8、断的函数Bioscom(int cmd,char byte, int pure),其中:参数cmd用来设置通信类型,cmd=0,初始化串行口pure;cmd=1,发送一个字符;cmd=2,接收一个字符;cmd=3返回串口当前状态。参数byte用来确定串行口的异步通信格式及波特率,其最高3位确定波特率的大小,3位 编码与波特率关系如下: 100对应波特率为1 200 b/s;101对应波特率为2 400 b/s;110对应波特率为4 800 b/s;111对应波特率为9 600 b/s。 假若要把串口设置为2 400 b/s,无奇偶校验位,使用1位停止位和8位
9、数据位,这时对应的b yte值是10100011B=0xa3H。对串口初始化可写成bioscom(0,0xa3,0)。 当调用函数bioscom(2,0,0)时,其低8位返回的值是串口接收的字符,当调用函数biosc om(1,0,0)时其低8位返回的是发送的字符,当调用函数bioscom(3,0,0)时返回串行口的状态。 5 PC机中非标准波特率的设定 PC机中的标准波特率有时候不能完全兼容单片机的波特率,例如,单片机使用6 MHz的晶振 作为主频,用定时器1方式2产生波特率,则用式(1)产生的波特率基本上没有一个是标准的。当然可以用改变晶振的方法改变波
10、特率,但这不是可行的方法。因此可以对8250的除数锁存器编程,才能取得与单片机相近似非标准的波特率。根据分析两者异步通信的波特率误差最大不能超过5%,若超过则就不能实现正常通信。对于常用的8位、9位和11位一帧的串行传送,其最大的波特率允许误差值分别为6.25%,5.56%和4.5%。 51系列单片机一般情况下都采用6 MHz晶振,当定时器1工作于方式2时,其波特率由其内部 定时器TH1决定,计算公式为: 其中:SMOD可取0或1。 根据上式可计算出,当SMOD=0时,对应于波特率为1 953 b/s的TH1的值为248,而与之对应
11、的PC机的除数锁存器的值为59(3BH);当SMOD=1时,对应于波特率为10 417 b/s的TH1为253,而与之对应的PC机除数锁存器的值是11(0BH)。 6结语 在串行异步通信中波特率的确定是一个至关重要的问题,由于单片机的波特率的计算值不符合标准的波特率,因此可以通过改变PC机除数锁存器的除数来与之相适应,例如将标准的2 400 b/s可以选取为非标准的1 953 b/s,将标准的9 600 b/s可以选取为非标准的10 417 b/s。实践证明这是切实可行的。 参考文献 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年农产品配送行业市场发展分析及发展趋势前景预测报告
- 2025-2030年入侵检测系统行业市场发展分析与发展前景及投资战略研究报告
- 2025-2030年中国雨水头行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国防水防风雨标签行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国钻铣床行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国重型运输车行业市场深度调研及竞争格局与投资战略研究报告
- 2025-2030年中国菌斑显示行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国茶叶电商行业市场现状供需分析及投资评估规划分析研究报告
- 发展可持续的鸟类观察与旅游模式
- 绝缘子耐电晕性能研究基础知识点归纳
- 护理安全用药制度
- 中国药妆行业发展现状、药妆市场政策解读及未来发展趋势分析图
- 毕业离校学生证遗失证明
- 《汽轮机原理》第03章1课件
- 家族成员关系辈分排列树状图含女眷
- 围堰施工监理实施细则
- 新生血管性青光眼课件
- YY∕T 1797-2021 内窥镜手术器械 腔镜切割吻合器及组件
- 智慧停车技术方案
- 土地整理质量评定表
- 肠内肠外营养制剂及特点
评论
0/150
提交评论