怀孕胸部会有什么反应| 经常放臭屁是什么原因| 7月14日是什么日子| singing是什么意思| 2月18什么星座| 胃炎吃什么中药| 尿少尿黄是什么原因引起的| 牙龈萎缩是什么原因造成的| 长期缺铁性贫血会导致什么后果| pnh是什么病| 过劳肥是什么意思| 古代上班叫什么| 跨性别是什么意思| 女性尿路感染吃什么药效果好| 梅兰竹菊代表什么生肖| 抽血化验挂什么科| 什么是环切手术| 男士背心什么牌子好| 鸿字五行属什么| 避孕药吃多了有什么副作用| 什么是斜视| 头发少是什么原因| 脸肿挂什么科| 农字五行属什么| rog是什么牌子| 西洋参不能和什么一起吃| 脑门痒痒是什么预兆| 手指头痒是什么原因| 肌钙蛋白低说明什么| 宠物蛇吃什么| 什么品牌的书包质量好| 熹字五行属什么| 什么是框架协议| 临床医学专业学什么| 男人为什么喜欢吸奶| 养血清脑颗粒治什么病| 腰椎挂什么科| 缺锌吃什么| 夜尿多吃什么药效果好| 葫芦为什么会苦| 嘴唇挂什么科| 马牙是什么原因引起的| 吃什么排便顺畅| 包皮过长会有什么影响| 冶游史是什么意思| 大学休学1年有什么影响| 姓陈取什么名字好听| triangle是什么意思| 被紫外线灯照到有什么后果呀| 胸部里面有个圆圆的硬东西是什么| 什么是食品添加剂| 十月二十三号是什么星座| 痛经可以吃什么水果| 高丽参是什么参| 一个口一个麦念什么| 低密度脂蛋白是什么意思| 血液凝固快是什么原因| AD是什么意思啊| 绿皮鸡蛋是什么品种鸡| 路亚竿什么品牌好| 不知道为什么| 喉咙疼是什么原因| 钙对人体有什么作用| 1995年属什么生肖| 今年什么时候暑伏| 冬枣为什么叫冬枣| 楞头青是什么意思| 老放屁是什么情况| sdnn是什么意思| 什么是猝死| 青色是什么颜色| 什么星座最聪明| 羊传染人的病叫什么名| 杯弓蛇影是什么物理现象| 每个月月经都提前是什么原因| 脘痞什么意思| 脱靶是什么意思| 罡是什么意思| sla是什么| 什么是2B铅笔| 胎菊和金银花一起泡水有什么效果| 什么季节喝白茶| 赵丽颖的真名叫什么| 总掉头发是什么原因| 荡气回肠是什么意思| 为什么会长水痘| 湖南省的简称是什么| 乙肝核心抗体阳性说明什么| 痞满是什么意思| 皮肤黏膜是什么| 30度穿什么衣服合适| 西米是什么做的| 育婴员是做什么的| 同房子宫疼痛什么原因| 戾气什么意思| 后入是什么意思| 92年五行属什么| 监督的近义词是什么| 红色学士服是什么学位| 怀孕孕酮低有什么影响| 生死有命富贵在天什么意思| pi是什么意思| 节气是什么意思| rsa是什么意思| 干燥综合征挂什么科| fda是什么意思| 当归和党参有什么区别| 左手无名指戴戒指什么意思| 养胃吃什么食物最好| 梅毒螺旋体抗体阴性是什么意思| 动脉硬化挂什么科| 黄盖代表什么生肖| 轰趴是什么意思| 黄五行属性是什么| 甲亢去医院挂什么科| 什么是孝顺| 我拿什么留住你| 能人是什么意思| 摆子是什么意思| minute是什么意思| 2003年的羊是什么命| 为什么会晕3d| 灵芝泡水喝有什么好处| 精液是什么味道| 钨砂是什么东西| 济公原名叫什么| 月经一个月来两次什么原因| 溃疡性结肠炎吃什么药| 城隍庙是什么神| 什么是生长纹| 牙神经疼吃什么药| 纳差什么意思| 鲁迅原名是什么| 留低是什么意思| 道德绑架什么意思| 过敏看什么科| 什么星空| 面色晄白是什么意思| 桥本氏甲状腺炎是什么意思| 每天吃松子有什么好处| 鼻子一直流血是什么原因| 急性肠胃炎吃什么药| 水印是什么意思| 为什么叫清明上河图| 什么是卵泡期| 能说会道是什么生肖| 低筋面粉是什么面粉| 胃酸分泌过多吃什么药| 柠檬吃多了有什么坏处| 天秤座是什么象| 张予曦为什么像混血| 其他垃圾有什么| 手指甲有黑色条纹是什么原因| 大鱼际发青是什么原因| 朱元璋是什么生肖| 土耳其浴是什么意思| 211是什么意思| 工作单位是什么意思| s标志的运动鞋是什么牌子| 脾五行属什么| 女性更年期吃什么药| 厍是什么意思| 动脉硬化挂什么科| 忽必烈姓什么| 宫腔镜是什么检查| 女人喝甘草水有什么好处| 鹅翅膀下垂是什么原因| 门庭冷落是什么意思| 什么叫两会| 订单号是什么| 美容美体包括什么项目| 胎监不过关是什么原因| 甲亢挂什么科室| 左束支传导阻滞是什么意思| 膻味是什么意思| 小女子这厢有礼了什么意思| flair呈高信号是什么意思| 花生什么时候种| 红光对皮肤有什么作用| 仔细的什么| 怀才不遇是什么意思| 男人射精什么感觉| 体温偏高的人说明什么| dvd是什么意思| 工作性质是什么意思| 至字五行属什么| 阿迪达斯和三叶草有什么区别| 什么食物含钙| 1.30是什么星座| 南京有什么山| ambush是什么牌子| 新鲜的乌梅长什么样| 生辰八字查五行缺什么| 碱性磷酸酶偏低是什么意思| loho是什么牌子| 梦房子倒塌什么预兆| 拔牙吃什么消炎药好| 阴平阳秘是什么意思| 木志读什么| 心季吃什么药| 例假提前来是什么原因| 仓鼠不能吃什么| 南瓜和什么相克| 考试什么的都去死吧歌曲| 一个目一个于念什么| 争奇斗艳的斗是什么意思| 婴儿流鼻涕吃什么药| 96615是什么电话| 白油是什么油| 两颗星是什么军衔| 鸡和什么属相最配对| 前列腺肥大有什么症状| 包皮过长是什么样的| 病理单克隆抗体检测是什么| 属狗适合佩戴什么饰品| 化验血常规能查出什么| 前列腺炎吃什么好| 热痱子是什么样子图片| 辰字属于五行属什么| 着了过是什么词| 电瓶车什么牌子好| 神经酸是什么| 肺部拍片挂什么科| 肝脏在人体什么位置| 情何以堪是什么意思| 静脉曲张是什么意思| 胃酸恶心想吐什么原因| 安德玛是什么牌子| 知了吃什么食物| 杨梅泡酒有什么功效| 哮喘是什么症状| 月经和怀孕的症状有什么不同| 哮喘是什么病| 日照香炉生紫烟是什么意思| 鸡头米是什么| 指甲油用什么能洗掉| 头晕吃什么可以缓解| 早上起来手发麻是什么原因| 心有灵犀什么意思| 钢笔刻字刻什么好| 为什么感冒药吃了想睡觉| 高育良什么级别| 霸道总裁是什么意思| 洗头什么时间洗最好| 做脑电图挂什么科| 方形脸适合什么发型| 肥胖去医院挂什么科| 硬膜囊前缘受压是什么意思| 打蛔虫吃什么药| 属鸡的适合干什么行业最赚钱| 1.12是什么星座| 缺少维生素有什么症状| 腰疼不能弯腰是什么原因引起的| 2028什么年| 冬瓜不能和什么一起吃| 男属兔和什么属相最配| 性转是什么意思| 高烧不退有什么好办法| 什么是无精症| 右侧胸口疼是什么原因| 高血压挂什么科室| 一票制什么意思| 胆固醇高是什么原因| 血肌酐高是什么原因| 百度

新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 异步通信起始位正确检测的VHDL实现

美国售乌导弹将使俄坦克陷灭顶之灾?美专家斥军售为战略失策

——
作者:中国电子科技集团公司第34研究所 杨润利 曹伟军 郑莉 雷庆华 时间:2025-08-04 来源:电子产品世界 收藏
百度 乾隆帝改雍和宫为黄庙,并不是彻底颠覆旧有建筑。

  摘要: 基于设计众多,本文分析了3倍频采样方法存在的不足,同时分析了16倍频采样对起始位检测的可靠性,并给出相关的硬件描述语言程序代码。

  关健词: ;;;

  概述

  随着电子设计自动化(EDA)技术的发展,可编程逻辑器件已经在许多方面得到了广泛应用,而(通用异步收发器) 是在数字通信和控制系统中广泛使用的串行数据传输协议。因此越来越多用户根据自己的需要,以EDA技术作为开发手段,用一块FPGA/CPLD设计出符合自己需要的UART芯片。基于FPGA/ CPLD的UART设计在诸多文献中都有论述,在此不再对UART整个功能模块实现做太多的论述。本文着重分析UART接收器起始位的检测。

  3倍频采样的缺陷

  首先,串行异步通信规定了字符数据的传送格式。每一帧数据由起始位、数据位、奇偶校验位、停止位和线路空闲状态组成,格式如图1所示。一般情况起始位为1位,数据位为5、6、7或8位、奇偶校验位为1位,停止位为1、1.5或2位。其中的起始位和停止位就是用来实现字符的同步。在空闲状态,传送线为逻辑“1”状态。数据的传送总是以一个“起始位”开始的,接着是要传送的若干数据位,低位先行,最后是一个“1”状态的“停止位”;那么,当接收器检测到一个“1”向“0”的跳变时,便视为可能的起始位。起始位被确认后,就知道发送器已开始发送,当接收了已协议好的位数后并接收到字符帧中停止位就是一帧字符数据已发送完毕。这样,接收器就知道发送器何时开始发送数据和何时结束发送数据。

图1 异步通信字符帧格式

  要提高接收器的接收准确性,减少误码率,必须要用比数据波特率高n 倍(n≥1)的速率对数据进行采样。文献2中采用了非常规的3倍频采样方法:用3倍频的波特率对每一位数据进行采样(如图2所示),然后对3次采样结果进行判决。如果3次采样中至少有2次为高电平,则接收这一位数据被判决为高电平,否则,为低电平。

图2 3倍频采样时序图

  此方法刚开始给人感觉比常规的16倍频采样准确性高,因为每一位数据都进行3取2的判决,而16倍频采样对每位数据只进行一次中间采样。然而笔者在实际应用中发现了其存在抗干扰性差,移植性差等不足。笔者在应用中自定义的帧长达21位,应用环境是涡轮工作间。在这样条件下,3倍频采样比在良好的实验室环境性能差了很多,误码率很高。

  经分析代码,发现3倍频采样方法在检测起始位没有任何的抗干扰处理。如果在接收线上存在干扰信号,即使是一个很窄负脉冲干扰,接收器也会误判为是数据帧的起始位,从而产生采样时钟进行后续的数据采样。图3所示为存在干扰信号时,检测起始位信号时序仿真波形。图中COLCK3-IN是3倍频采样时钟,CLOCK1-IN是数据波特率,DATAIN是接收线上的数据。从图中看出,干扰信号后,COLCK3-IN时钟产生,接收器接收数据。可见接收到的数据都是错误数据。简单说,文献2中所论述方法不能识别真假数据起始位。再从程序可移植性来说,3倍频采样时钟是用三个数值进行计数判断而得,当波特率改变,其数值都要做相应改变,这就增加了程序的修改难度。

图3 存在干扰信号时3倍频采样时序图

{{分页}}

  16倍频采样起始位的检测

  3倍频采样方法无法识别真假数据起始位,导致其抗干扰性差,准确性得不到保证。笔者抛弃非常规3倍频采样方法,采用了常规的16倍频采样方法:采用数据速率的16倍进行采样,采样时钟连续采样到8个低电平信号,可确定该低电平为真正的起始位,从而防止干扰信号产生的假起始位现象的发生。此后,接收器每隔16个采样时钟采样一次,并把采样到的数据作为输入数据,以移位方式存入到接收移位寄存器。16倍频对接收线的采样关系如图4所示。

图4 UART对数据的采样

  起始位检测8个连续脉冲的另一个更重要的原因是,采用16倍频采样的时钟,第8个采样脉冲所对应的数据波形正好是该位数据位波形的正中点(以时钟上升沿采样),在该处读写数据应该是最安全点。

  在设计时,充分抓住异步数据的特征进行设计:起始位为低电平、停止位为高电平、每帧数据帧结构相同。根据异步数据这些特征就可设计出以下相应程序:

  process(clk16x,start) --产生clk1x时钟进程

  begin

  if start='0' then

  q<="0001";

  elsif clk16x'event and clk16x='1'

  then

  q<=q+1;

  end if;

  end process ;

  clk1x<=q(3);

  process(clk16x,i,serialin,rst) --起始位检测进程

{{分页}}

  begin

  if rst='1' then

  start<='0';

  elsif rising_edge(clk16x) then    if serialin='0' then

  start<='1' ;

  elsif over='0' then

  start<='1';

  else start<='0';

  end if;

  end if;

  end process;

  process(clk1x,serialin,i,rst) --读数据进程

  begin

  if rst='1' then

  buff<= (others => '1');

  Dout_P<= (others => '1');

  i<=0;

  over<='1';

  elsif rising_edge(clk1x) then

  if i

  buff21<=serialin;

  i<=i+1;

  over<='0';    else

  i<=0;

  over<='1';

  Dout_P<=buff;

  end if;

  end if;

  end process ;

{{分页}}

  本设计采用硬件描述语言来进行描述。clk16x为16倍频采样时钟,clk1x是检测到真正起始位后由clk16x时钟分频产生的采样时钟,start为开始接收数据信号(接收数据期间为高电平)、serialin为异步数据输入端口。平常,接收器按clk16x时钟上升采样serialin。当采样时钟检测到低电平时输出一个高电平给start信号,clk1x分频计数器启动。如果连续采集8个脉冲都为低电平(起始位之半),即确定该低电平为起始位,输出一个低电平给接收数据完信号over(接收数据期间为低电平,接收完数据为高电平),over信号在低电平检测共同作用下保持start为高电平。start长时间保持高电平(8个clk16周期T)产生clk1x时钟。反之判别为假起始位,over仍然为高电平,start却变为低电平,clk1x分频计数器复位,一直等到下次检测serialin为低电平才重新启动。可见,只有确定了起始位,clk1x时钟才会产生,否则不产生。而clk16x时钟始终存在,保证不会错过每次接收线上的数据采样。

  图5所示为接收信号时序仿真波形。从图中可以清楚看到clk1x的上升沿都对准了每个数据的中间。图6是存在干扰信号起始位检测时序仿真波形。从图中看到干扰信号后,没有产生clk1x时钟,接收器不接收数据。当真正检测到起始位,产生clk1x时钟,接收器开始接收数据。改变数据波特率,clk1x计数值不用改变,只要改变clk16x的分频计数器的计数值就可以了。对于自定义的异步数据,只要是起始位是低电平,停止位是高电平,改变length的值就可以接收不同位数数据。可见以上代码容易移植。笔者在应用中自定义21位异步数据验证了其性能优越:无误码率高,抗干扰性强。

图5 16倍频采样时序图

图6 16倍频采样时序图(有干扰信号)

  结语

  按常规的16倍频采样方法接收异步数据,其抗干扰性、移植性等都优于3倍频采样方法。实际应用表明,提高采样倍数,接收准确性相应提高;在一定范围内,提高数据波特率不会影响接收准确性。

  参考文献:

  1. 朱明程、孙普译,可编程逻辑系统的VHDL设计技术,东南大学出版社

  2. 李刚强,基于VHDL的异步串行通信电路设计,电子开发网

通信相关文章:通信原理




评论


相关推荐

技术专区

关闭
上海市长什么级别 早上起床想吐是什么原因 口角炎吃什么药 芒果是什么季节的水果 还替身是什么意思
怀孕肚子痒是什么原因 宫保鸡丁是什么菜系 甲亢是什么引起的 二大爷是什么意思 消炎药是什么药
美国为什么不敢打伊朗 狗打针打什么部位 牛肉配什么菜包饺子好吃 卒中是什么意思 h什么意思
腕管综合症吃什么药 什么蛇没毒 麒麟飞到北极会变成什么 孕吐反应强烈说明什么 人打嗝是什么原因
做梦梦见兔子是什么意思gangsutong.com 卵巢囊性占位是什么意思hcv9jop6ns4r.cn 新生儿什么时候可以喝水hcv9jop6ns5r.cn 嘴唇发紫是什么原因hcv9jop3ns5r.cn 3月16号是什么星座hcv8jop1ns5r.cn
梓树为什么叫梧桐树hcv8jop5ns3r.cn 低血糖有什么危险hcv9jop5ns1r.cn 电脑关机快捷键是什么hcv7jop6ns2r.cn 2022年是什么生肖hcv9jop3ns2r.cn 贵州有什么美食hcv9jop6ns6r.cn
突然腰疼是什么原因hcv9jop0ns3r.cn 舌根苔白厚腻是什么原因xscnpatent.com 房水由什么产生hcv9jop6ns1r.cn AC是胎儿的什么意思hcv8jop2ns2r.cn 宝宝积食吃什么药hcv8jop9ns0r.cn
新陈代谢是指什么hcv8jop1ns8r.cn 正师级是什么军衔hcv8jop8ns8r.cn 补充公积金是什么意思huizhijixie.com 96年的鼠是什么命hcv8jop9ns3r.cn 子宫内膜不典型增生是什么意思imcecn.com
百度