- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串行通信波特率的一种自动检测方法,自动波特率检测,串行波特率,端口波特率检测工具,端口和波特率检测工具,串口通信波特率,检测端口波特率软件,波特率检测工具,凯立德波特率检测,凯立德端口波特率检测
串行通信波特率的一种自动检测方法 (哈尔滨工业大学控制工程系 150001) ? 任贵勇 屈彦成 王常虹 ? ? 摘 要:给出了一种利用接收到的字符信息检测串行终端通信波特率 ? 的方法。此方法简单、可靠、易行,并给出了实现这种检测方法的伪代码。 关键词:自动检测;波特率 串行通信是终端和主机之间的主要通信方式,通信波特率一般选择1800、4800、9600和 ? 19200等。终端的类型有很多种,其通信速率也有很多种选择。主机怎样确定终端的通信速率呢?本文给出了一种简单、易行的方法:设定主机的接收波特率(以9600波特为例),终端发送一个特定的字符(以回车符为例),主机根据接收到的字符信息就可以确定终端的通信波特率。本文对这种方法予以详述。 1 基本方法 回车符的ASCII值为0x0D。串行通信时附加一个起始位和终止位,位的传输顺序一般是 ? 先传低位再传高位。此时回车符的二进制表示方式为: 图1 回车符的位序列 串行通信中一个二进制位的传输时间(记为T)取决于通信的波特率,9600波特时一个 ? 二进制位的传输时间是19200波特时一个二进制位传输时间的两倍,即:2*T19200=T ? 9600。因此,9600波特时一个位的传输时间,19200波特时可以传输两个位。同样地 ? ,9600波特传输两个位的时间在4800波特时只能传送一个位。主机设定接收波特率为9600, ? 终端只有也以9600波特发送的字符,主机才能正确地接收。发送波特率高于或低于9600都会 ? 使主机接收到的字符发生错误。接收波特率为9600,终端以不同的波特率发送回车符时,主 ? 机接收到的二进制序列如表1所示。 从表1中可以看出,除了19200和1800波特时两种特例情况,其他情形的二进制序列都是 ? 9600波特时二进制序列的变换。取前十个二进制位与9600波特时的二进制位相对应。忽略缺 ? 少停止位‘1’引发的数据帧错误,把接收到的字符表示成字节方式(如表1的最右列所示) ? 。例如:在发送速率为1200波特,接收速率为9600波特时,主机得到的字节是0x80,而不 ? 是正确的回车符0x0D。因为在不同的发送速率下(9600,4800,2400,1200)得到的字节 ? 不同,所以通过接收字符的判定就可以确定发送波特率。 发送波特率为19200时,其发送速度正好是接收速度(9600波特)的两倍,因此发送端 ? 的两个二进制位会被接收端看作一个。取决于不同的串行接口硬件,‘01’和‘10’这两种 ? 二进制位组合可能被认为是‘1’或者‘0’。幸运的是,只有0~4位存在这样的歧义问题, ? 后面的位因为都是停止位,所以都是‘1’。因此,发送速率为19200波特时接收到的字符其高半个字节为0xF。低半个字节可能是多个值中的一个,但不会是0x0,因为0x0D中有相邻 ? 的两个‘1’,这就会至少在低半个字节中产生一个‘1’。因此,整个字节的形式为0xF?, ? 且低半个字节不为0。 表1 ? 不同波特率下的二进制序列 波特率 ? 接收到的二进制位序列 ? 字节表示 ? 19200 ? 0 ? 1 ? 0 ? 1 ? 1 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 0xF? ? 9600 ? 0 1 ? 0 1 ? 1 0 ? 0 ? 0 0 ? 1 ? 0x0D ? 4800 ? 0 ? 0 ? 1 ? 1 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 0xE6 ? 2400 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 0x78 ? 1800 ? 0 ? 0 ? 0 ? 0 ? 0 ? x ? 1 ? 1 ? 1 ? 1 ? x ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 0xE0 ? 1800 ? 0 ? 0 ? 0 ? 0 ? 0 ? x ? 1 ? 1 ? 1 ? 1 ? x ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 0xF0 ? 1200 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 1 ? 0 ? 0 ? 0 ? 0 ? 0x80 ? 600 ? 0 ? 0 ? 0 ?
文档评论(0)