STC单片机自适应波特率串口的实现方法

2021-01-26 20:11:47更新 手机网站 网站地图 资讯 综合 水电工培训 湖南阳光装饰装修培训学校常年开设:水电安装培训、木工培训、室内装修培训、PLC培训、瓦工培训、家装木工培训课程。是专业的水电工培训学校,PLC编程培训学校,木工培训学校,泥工培训学校,室内装修培训学校。
水电工培训学校形象图片
水电安装培训学校
  • 最新报名学员名单(实时滚动)
    最新就业创业学员名单
    STC单片机自适应波特率串口的实现方法
    STC单片机自适应波特率串口的实现方法
    当前位置: > 电工技术更新时间:2014-01-15 15:11:58主题:STC单片机自适应波特率串口的实现方法 围观:

      stc单片机自适应波特率串口的实现方法通常有以下几种:

      (1)协议约定通信开始时主机固定发送1 个字符,从机以不同的波特率试探接收,当接收到的数据与约定相同时,确定该波特率即是正确的通信波特率。

      (2)协议约定通信开始时主机发送1 串字符,从机以某固定波特率接收,然后通过软件分析接收到的数据,计算出接收数据与发送数据之间的倍数关系,从而确定正确的波特率。

      (3)协议约定通信开始时主机固定发送1 个字符,从机用单片机定时器检测rxd 上的信号宽度,通过计算来确定主机的波特率。

      以上3 种方法,第一种由于需要多次试探,效率很低;第二种计算量过大,不适合单片机处理;第三种方式单片机有现成的定时器资源,计算也相对简单,所以优选这种。

      要测量脉冲宽度,前提是单片机的时钟信号必须稳定。目前很多stc单片机可选外接晶振时钟或片内rc振荡时钟,片内rc振荡时钟省去了外部的晶振等元件,成本降低、电路板的体积也可以缩小,这对成本及体积敏感的应用很具优势。但选用片内rc振荡时,频率会有±15%左右的误差,频率的稳定性也比外接晶振要差,按理论计算值设置波特率参数,无法保证可靠的通信,但按以上自适应波特率串口的第三种方法,每次通信前实测、计算、确定波特率常数,就可以实现稳定可靠的通信,这样充分利用了stc单片机的优势。

      1 stc 单片机的特点

      标准51 芯片由于定时器最高分辨率只有1 μs,对于较高的通信波特率来说,测量精度不够,导致计算值不准,无法正常工作。stc系列单片机是在标准51单片机基础上发展起来的,它增加了很多实用的接口电路,扩大了时钟的频率范围,设计出了1t 时钟的芯片,可以通过软件对系统时钟分频,并提供了片内rc振荡时钟,在目前51芯片的市场占有极大的份额。stc系列单片机采用片内rc振荡时钟、自适应波特率串口通信技术,可以广泛地应用于分布式控制、智能仪表、通信等行业。

      2 自适应工作原理

      stc 单片机采用异步通信,uart 工作于模式1(8位uart,波特率可变),用定时计数器2做波特率发生器,工作于模式2(8位自动重装模式),主从机按图1方式连接,从机自适应主机的波特率。

      

      自适应过程由主机发送联络字符开始。为了使从机获得最大的测量脉宽,提高测量精度,由主机发送二进制“0”.如图2所示,二进制“0”由1位起始位,8位数据位(低位在先)及1位停止位构成,其中1位起始位和8位数据位全为0,所以低电平的宽度为9 b.

      

      从机查询rxd引脚的电平,检测到低电平后就启动定时器0开始计时,再检测到高电平就停止定时器0计时,根据定时器0的定时值就可以计算出主机的波特率。

      当时钟分频寄存器clk_div=0(不分频),特殊功能寄存器auxr=0xc0(t0 用1t 时钟),则:

      

      而stc51 系列单片机在uart 模式1,时钟模式为1t 时,其波特率公式为:

      

      从机uart在模式1下,将式(4)或式(6)计算结果作为定时器1重装值,设定通信参数,通过串口回送应答信号给主机。主机如正确接收到从机回送的信号,就说明从机已完成波特率自适应,可以开始正常通信了。

      3 误差分析

      为保证可靠通信,要求通信双方的波特率相对误差小于2.5%.

      在自适应波特率校准系统中,误差主要来自两个方面,一是定时器t0 启动和停止滞后造成的误差δt0;二是波特率发生器t1 本身固有的一个机器周期误差δt1 = ±1.由于stc51单片机采用1t 时钟定时,δt0 误差只有标准51系列芯片的1 12,系统误差主要由δt1 决定。

      以stc12c5620为例,当采用片内rc振荡,时钟频率通常在5.2~6.9 mhz 之间。当时钟频率为5.2 mhz,smod=1时,uart时钟分别按12t,1t 计算,见表1,表2.

      

      

      表1、表2中加粗部分表示可以选用的波特率值,由表1、表2可知,只要编程时选择合适的时钟,在5.2 mhz时钟频率下,波特率可以在300~115 200 b/s 之间实现自适应,由t1 取整带来的误差在0.5%以内。当系统时钟为6.9 mhz时,用同样的方法计算,也可以证明波特率可以在300~115 200 b/s 之间实现自适应,由t1 取整带来的误差也在0.5%以内。由此可见,stc12c5620采用片内rc振荡,可以在300~115 200 b/s之间完成波特率自适应,实现稳定可靠的通信。

      4 软件流程与程序

      主机软件流程图如图3所示,从机软件流程图如图4所示。

      

      以下为c51波特率自适应程序:

      

      

      5 应用实例

      采用stc12c5620 设计的重力检测开关,如图5 所示。为降低成本、缩小体积,采用了片内rc振荡,不设按键及显示。重力检测开关首次工作前需设定一些参数,并校准。由于没有键盘及显示,采用和计算机联机设置、校准。本电路采用了上述的自适应波特率工作方式,由pc机作主机,通过串口来初始化重力检测开关的各参数。

      

      设置时,将重力检测开关与计算机之间用rs 232线连接好,然后点击pc机软件界面上的“连接串口”按钮进行波特率自适应,当界面上状态栏提示“连接串口成功!”时,表示波特率自适应工作正确完成, 如图6所示,可以进行参数设置和校准操作。设置、校准后,重力检测开关就可脱机正常工作了。

      

      经反复验证,该电路在300~115 200 b/s 波特率范围内可稳定通信工作。

      6 结语

      该波特率自适应方法,可扩展应用于其他单片机系统,解决对方的波特率未知、或对方的波特率有偏差而无法正常通信的问题,即使对方的波特率不是标准值也可正常工作,具有较大的实用价值。

    温馨提示:湖南阳光电子学校常年面向全国招生(不限年龄)。由湖南阳光电子学校实战一线首席技术专家授课,天天实操,全程实战,手把手教,包教包会。我们是正规技术学校,我们有自己的校园,我们是行业正规军!我们有自己的教学楼、学员公寓楼、篮球场(2个)、有校内花园、有专业实操车间。我们会为您提供海量的STC单片机自适应波特率串口的实现方法的信息,如果您想了解有关STC单片机自适应波特率串口的实现方法方面的更多资讯,请经常关注我校网站:www.hnygpx.cn,我们将给你最详细的与STC单片机自适应波特率串口的实现方法相关的解答。 如果您对湖南阳光电子学校发布的STC单片机自适应波特率串口的实现方法这条信息有什么好的建议,请告诉我们。您的宝贵建议对我们逐步完善STC单片机自适应波特率串口的实现方法的内容有重要的参考作用!
      推荐文章
      • 水电工是做什么的:水电工是水工、电工、管工的统筹总称,简称水电工。社会上的电工培训班,只是单一的电工培训,不含水工和管工。水电工就是在家装工地上安装一些电路和水路的技术工作。水电工…
      • “相信品牌的力量”是掷地有声且亘久不变的品牌标语。湖南阳光电子技术学校教育的品牌经住了时间和社会的考证,一直在电子维修技术培训行业的洪流中奔流不息。湖南阳光电子技术学校教育采用模块…
      • 湖南阳光电工焊工技术培训学校(湖南电工焊工培训领导品牌)是经湖南省劳动和社会保障厅批准成立的电工焊工专业技术培训学校,是焊工学校、焊工培训、电焊技校、电焊培训学校、电工培训、电工技…
      • 联系方式●网站:http://www.hnygpx.net
      • 学习时间:3个月教学目标:培养中级“电工+焊工”全能技术人员。半天理论,半天实践,深入浅出,通俗易懂,从零开始,手把手教,包教包会,使学生成为真正意义上的、全能的电工焊工技术人才。教…
      • 教学目标:培养中级电工技术人员。半天理论,半天实践,深入浅出,通俗易懂,从零开始,手把手教,包教包会,使学生成为真正意义上的、全能的电工技术人才。学习时间:2个月(采用我校十五年经典…


      安防监控技术学校
      安防监控技术学校
      安防监控技术学校
      返回顶部
      中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市