当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要: 通用非同步收发传输器UART是一种通用串行数据总线,双向通信,可以实现全双工传输和接收,用于异步通信。在Simulink环境下,用STATEFLOW对其进行建模,可以将其原理直接转化成模型,摆脱了传统方式下直接手写代码的弊端,而且可以自动生成HDL代码,为FPGA的设计、开发开辟了新的途径。
关键词: 代码自动生成;STATEFLOW;HDL;FPGA

1 传统设计方法与基于模型设计的比较[1]
1.1 传统设计方法的缺陷
(1)信息的交流依赖文档
传统的开发方法中,在不同阶段彼此之间传递的信息需要依赖文档。由于工程师对系统的认识与理解有一定的局限性以及对文档理解的二义性,会在系统开发的过程中引入一些缺陷甚至错误,而这些缺陷或者错误会一步一步地传递到下一个设计阶段。
(2)早期设计阶段引入的错误要在开发后期才能发现
由于设计的嵌入式软件算法需要专门的硬件生产出来之后进行集成的测试,因此在设计阶段早期,引入的一些设计错误要在软、硬件产品都具备之后进行集成与测试时,在开发后期才能够发现早期的错误,此时修正起来不是那么简单,极有可能需要重新编写软件,甚至重新开发硬件。
(3)手写代码与手写文档
传统的设计方法中,产品实现过程只能够利用手写代码来完成。这对于FPGA、HDL的初学者和工程师都是一件麻烦事。文档的错误,再加上手写HDL代码的错误,最终的产品就可能有很多问题,以致于无法完成最后的子系统、分系统和全系统的集成工作。
1.2 基于模型的设计优势
(1)在基于模型的系统设计过程中,所有过程遵循统一环境下的统一的模型。由于可以把测试手段从系统设计的初期引入到整个设计流程中,作为规范的模型能够通过执行仿真来验证自己的正确性,从而保证了规范的正确性。
(2)连续不断的测试与验证。在模型设计的每个环节都引入了测试仿真手段。利用充分的仿真,可以考察系统不同组件对整个系统的影响。
(3)自动代码生成。传统的FPGA设计方法往往是一开始就手写HDL代码,这对于初学者是件困难的。而基于模型的设计优点是只要知道设计原理,就可以用模型直观地设计,省去了手写代码的麻烦,提高了开发的效率,缩短了开发周期。而且模型做成子系统后可以自动生成HDL代码,如果有错,只要修改模型,再重新生成HDL代码即可,为后续的开发提供了便利。
2 UART串口通信原理
在空闲时,TXD为高电平。发送时,先发送起始位(低电平),再发送数据位,最后发送停止位(高电平),发送过程为并入串出。对于接收,空闲时RXD为高电平,低电平来到时,在该位的当中进行采样,如果为0,则为起始位,说明可以采集后面的数据位,直至最后的停止位,接收过程为串入并出。
数据时序图如图1所示。

3 用Simulink、STATEFLOW实现对UART串口行为建模
(1)UART发送模块的STATEFLOW建模如图2所示,TxDS与CnTS为并行状态。

TxDS:从IDLE状态开始,在此状态中,将位计数(BitCnt)设置为0、Ready设置为1(告诉前级模块此时为空闲可以将数据并行传入),将空闲时为高电平(TxD)设置为1;当并行数据有效(Valid=1),将BitCnt设置为10,将要发送的数据(TxDdata)放入临时变量(Tmp),Ready设置为0(告诉前级模块正在发送数据,不要再将新的数据传入)从而进入起始位的发送;进入START状态,发送起始位(TxD=0),当波特率发生器(RateCnt)从15降到0时即控制每一位发送的时间,进入RSHIFT状态(发送数据位);在RSHIFT中,BitCnt减1(即1位发送完毕),将存放在Tmp中待发送数据的最低位取出(发送时先发送最低位),然后Tmp右移1位(准备下一次次低位的发送),当BitCnt减到2时,进入STOP状态;在STOP状态中,发送停止位高电平(TxD=1)。
CnTS:波特率发生器。
(2)UART接收模块的STATEFLOW建模如图3所示。RxDS、CnTS、RTS并行工作。

RxDS:在IDLE状态中,将BitCnt置0,判起始位是否到来,如果为0,进入START中,BitCnt加1变为1。当RateCnt从7减到0时,即在该位的中间时进行判断,如果此时还为0,则确定其为起始位,进入DATA;当RateCnt从15减到0,即在每个数据位的中间对数据位进行判断,将接收到的最低位存放在临时变量Tmp的最高位。通过不断的移位就会将接收到的最低位移到Tmp的最低位,在这个过程中BitCnt不断加1,当BitCnt加到9时回到IDLE。
CnTS:波特率发生器。
RTS:负责后续模块之间的握手。
(3)为了生成HDL代码,必须将UART发送模块和接收模块的STATEFLOW建模部分做成子系统,分别如图4、图5所示。

(4)将发送模块与接收模块连接成整个Simulink模型,如图6所示。

(5)UART模型的仿真运行结果如图7所示。

(6)将发送与接收的代码在Quartus II下做成Symbol,并组成顶层图形文件,如图8所示。

(7)在Quartus II下仿真。
①发送模块在Quartus II下的仿真如图9所示。
②接收模块在Quartus II下的仿真如图10所示。
③顶层图形文件在Quartus II下的仿真如图11所示。

本文在Simulink环境下,用STATEFLOW对UART进行建模。事实表明,用STATEFLOW建模克服了手写代码易出错、效率低等弊端,在了解UART原理的基础上,可用直观的模型将原理生动地表达出来,为FPGA设计人员提供了很大的便利,也为FPGA的设计提供了新的方式。
参考文献
[1] 张威.STATEFLOW逻辑系统建模[M].西安:西安电子科技大学出版社,2007.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器学习是人工智能的一个分支,它通过揭示数据模式(即特征和目标变量之间的关系)来模拟人类的学习能力。特征是表示给定观察点或数据点的属性的独立变量。另一方面,目标变量是一个因变量,我们感兴趣的建模作出预测。

关键字: 机器学习 独立变量 建模

2023年10月18日,中国在第三届“一带一路”国际合作高峰论坛期间发布《全球人工智能治理倡议》,围绕人工智能发展、安全、治理三方面系统阐述了人工智能治理中国方案。

关键字: 人工智能 大模型 代码

串行通信需要传输的数据通过调制器(Modulator)将数据转换为模拟信号,经过信号调制(Modulation)后在传输线上传输,接收端通过解调器(Demodulator)将信号解码还原成原始数据。

关键字: 串口 串行通信 并行通信

我们看到这么多的安全问题,部分原因在于我们对待安全的方式:安全性通常被认为是事后考虑的问题,是在开发结束时才添加到设备上的东西。然而,复杂的系统,尤其是嵌入式系统,有一个很大的攻击面,这让攻击者有机可乘,能够在“盔甲”上...

关键字: 代码 嵌入式系统 软件漏洞

新富人群财务需求多元发展,投顾服务迎来新机遇 上海2023年9月20日 /美通社/ -- 2023年9月19日,上海交通大学上海高级金融学院(高金)与全球领先的金融服务机构嘉信理财(Charles Schwab)联合发...

关键字: BSP ADVANCED INA 代码

北京2023年9月14日 /美通社/ -- 生物医药高科技公司诺诚健华(港交所代码:09969;上交所代码:688428)今日宣布,新型蛋白酪氨酸磷酸酶SHP2变构抑制剂ICP-189联用针对表皮生长因子受体(EGFR)...

关键字: IC HP 代码 ARMA

上海2023年9月1日 /美通社/ -- 2023上半年,安集科技(股票代码:688019)市场拓展规划成效显现,营业收入稳健增长。 全球半导体产业挑战持续存在的情形下,安集科技秉承发扬"克难攻坚,敢打硬...

关键字: 安集科技 BSP 代码 半导体材料

国际酒店运营商升级其在线支付功能 上海2023年8月28日 /美通社/ -- 加拿大金融科技公司Nuvei Corporation(以下简称“Nuvei”或“公司”)(纳斯达克代码:NVEI)(多伦多证券交易所代码:N...

关键字: 代码 IP SE 纳斯达克

2023年上半年收入7.459亿元 同比增长5.1% 毛利率水平上升 海外收入同比增长65.4% 香港2023年8月22日 /美通社/ -- 金邦达宝嘉控股有限公司及其附属公司(以下合称「金邦达」、「...

关键字: 数字化 代码 嵌入式软件 COM

我们经常对正在进行数字化转型的亚马逊云科技客户建议,将云迁移视为其数字化转型的一部分,数字化转型本身必须由业务成果驱动。其中治理计划的有效性决定了云迁移和数字化转型的成功与否。数字化转型中的云迁移总有结束的时候,但是如果...

关键字: 代码 数字化 云服务
关闭
关闭