单片机
介绍UART
最早的串行通讯设备可以追溯到电报机,它使用长度可变的脉冲信号进行数据传输。要说早期的芯片级UART,不得不提一下DEC,该公司的PDP系列计算机用上了第一个UART。当时的UART的线路占据了整个电路板,体积巨大!可以联想一下早期计算机的样子,如下图。
如今PC机上的串口早已被USB取代,对RS-232(也称标准串口)有需求的用户通常使用USB转串口线,这里常见的有CH340串口驱动程序。在UART通信中,两个UART直接通信。
发送端的UART将来自控制设备(如CPU)的并行数据转换为串行数据,以串行方式将其发送到接收端的UART,然后由接收端的UART将串行数据转换为并行数据以用于接收设备的正常处理。这里只需要两条线RX/TX即可在两个UART之间传输数据,如下图所示。
UART传输的数据被封装成数据包。每个数据包包含1个起始位,5~9个数据位(取决于UART的具体设置),一个可选的奇偶校验位以及1个或2个停止位,如下图所示。
起始位
UART数据传输线通常在不传输数据时保持在高电平。为了开始数据传输,发送端UART在一个时钟周期内将传输线从高电平拉低到低电平。当接收端UART检测到高电压到低电压转换时,它开始以波特率的频率读取数据位中的每一位数据。
数据
数据位包含正在传输的实际数据。如果使用奇偶校验位,则可以是5位,最多8位。如果不使用奇偶校验位,则数据帧的长度可以为9位。在大多数情况下,数据首先以低有效位发送。
校验位
在串口通信中一种简单的检错方式。有四种检错方式:
偶校验
奇校验
高校验
低校验
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
停止位
发送端UART将数据传输线从低电压驱动到高电压至少持续两位数据的时间宽度来表示整个数据包的传输已经结束。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢。
波特率
波特率是串口数据的传输速度,即Bit/s,常见的波特率比如:9600,19200,38400,57600,115200等。假设目前UART的配置为,1个起始位,8个数据位,0个校验位,1个停止位,那么9600的波特率,可以计算出每一位数据的时间宽度为:
那么传输一个字节(也就是10 bit 数据)需要的时间为 1.04 毫秒。
UART传输过程
①发送端UART从数据总线转换并行数据。
②发送端UART将起始位,奇偶校验位和停止位添加到数据包中,示意图如下。
③整个数据包从发送端UART串行发送到接收端UART,接收端UART按照预先配置好的波特率对数据线进行采样,示意图如下。
④接收端UART解析接收的数据,丢弃数据包中的起始位,奇偶校验位和停止位。
⑤接收UART将串行数据转换回并行数据,并将其传输到接收端的数据总线。
本文转自: STM32嵌入式开发(微信号:c-stm32),作者:acket,转载此文目的在于传递更多信息,版权归原作者所有。
单片机是控制电子产品的大脑
现如今,我们生活中的许多电器都使用了单片机。例如:手机、电视机、冰箱、洗衣机、以及按下开关,LED就闪烁的儿童玩具。那么,单片机在这些电器中究竟做了些什么呢?
单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的外围功能电路动作。
那么,单片机是如何构成的呢?如图1所示。
单片机是由CPU、内存、外围功能等部分组成的。如果将单片机比作人,那么CPU是负责思考的,内存是负责记忆的,外围功能相当于视觉的感官系统及控制手脚动作的神经系统。
尽管我们说CPU相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU只能依次读取并执行事先存储在内存中的指令组合(程序)。当然CPU执行的指令并不是“走路”、“讲话”等高难度命令,而是一些非常简单的指令,象从内存的某个地方“读取数据”或把某个数据“写入”内存的某个地方,或做加法、乘法和逻辑运算等等。然而这些简单指令的组合,却能实现许多复杂的功能。
会思考的CPU
让我们从CPU的构成来了解它的作用吧,如图2所示。
◇程序计数器
CPU读取指令时需要知道要执行的指令保存在内存的什么位置,这个位置信息称为地址(相当于家庭住址)。程序计数器(PC)就是存储地址的寄存器。通常,PC是按1递增设计的,也就是说,当CPU执行了0000地址中的指令后,PC会自动加1,变成0001地址。每执行一条指令PC都会自动加1,指向下一条指令的地址。可以说,PC决定了程序执行的顺序。
◇指令解码电路
指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。确切地讲,指令解码电路就是我们在“数字电路入门(2)”中学过的解码电路,只不过电路结构稍微复杂些,所以,指令解码电路的工作原理就是从被符号化(被加密)的指令中,还原指令。
◇运算电路
运算电路也称为ALU(Arithmetic and Logic Unit),是完成运算的电路。能进行加法、乘法等算术运算、也能进行AND、OR 、BIT-SHIFT等逻辑运算。运算是在指令解码电路的控制下进行的。通常运算电路的构成都比较复杂。
◇CPU内部寄存器
CPU内部寄存器是存储临时信息的场所。有存储运算值和运算结果的通用寄存器,也有一些特殊寄存器,比如存储运算标志的标志寄存器等。也就是说,运算电路进行运算时,并不是在内存中直接运算的,而是将内存中的数据复制到通用寄存器,在通用寄存器中进行运算的。
CPU的工作原理
让我们通过一个具体运算3+4,来说明CPU的操作过程吧。
假设保存在内存中的程序和数据如下。
◇步骤1:当程序被执行时,CPU就读取当前PC指向的地址0000中的指令(该操作称为指令读取)。经过解码电路解读后,这条指令的意思是“读取0100地址中的内容,然后,保存到寄存器1”。于是CPU就执行指令,从0100地址中读取数据,存入寄存器1。
寄存器1:0→3(由0变为3)
由于执行了1条指令,因此,PC的值变为0001
◇步骤2:由于PC的值为0001,因此CPU就读取0001地址中的指令,经解码电路解码后,CPU执行该指令。然后PC再加1。
寄存器2:0→4(由0变为4)
PC:0001→0000
◇步骤3:由于PC的值为0002,因此CPU从0002地址中读取指令,送给指令解码电路。解码结果是:将寄存器1和寄存器2相加,然后将结果存于寄存器1。
寄存器1:3→7
PC:2→3
于是3+4的结果7被存于寄存器1,加法运算结束。CPU就是这样,依次处理每一条简单的指令。
能记忆的内存
内存是单片机的记忆装置,主要记忆程序和数据,大体上分为ROM和RAM两大类。
◇ROM
ROM(Read Only Memory)是只读内存的简称。保存在ROM中的数据不能删除,也不会因断电而丢失。ROM主要用于保存用户程序和在程序执行中保持不变的常数。
大多数瑞萨(Renesas)的单片机都用闪存作为ROM。这是因为闪存不仅可以象ROM一样,即使关机也不会丢失数据,而且还允许修改数据。
◇RAM
RAM(Random Access Memory)是可随机读/写内存的简称。可以随时读写数据,但关机后,保存在RAM中的数据也随之消失。主要用于存储程序中的变量。
在单芯片单片机中(*1),常常用SRAM作为内部RAM。SRAM允许高速访问,但是,内部结构太复杂,很难实现高密度集成,不适合用作大容量内存。
除SRAM外,DRAM也是常见的RAM。DRAM的结构比较容易实现高密度集成,因此,比SRAM的容量大。但是,将高速逻辑电路和DRAM安装于同一个晶片上较为困难,因此,一般在单芯片单片机中很少使用,基本上都是用作外围电路。
(*1)单芯片单片机是指:将CPU,ROM,RAM,振荡电路,定时器和串行I/F等集成于一个LSI的微处理器。单芯片单片机的基础上再配置一些系统的主要外围电路,而形成的大规模集成电路称为系统LSI。
“为何要使用单片机……”
为什么很多电器设备都要使用单片机呢?
让我们用一个点亮LED的电路为例,来说明。如图3所示,不使用单片机的电路是一个由LED,开关和电阻构成的简单电路。
使用单片机的电路如图4所示。
很显然,使用单片机的电路要复杂得多,而且设计电路还要花费精力与财力。好象使用单片机并没有什么优点。但是,现在下结论还为时尚早。
如果我们让这个电路做一些比较复杂的操作,会怎么样呢。例如:如果希望LED在按下开关后,经过一段时间再点亮或熄灭,那么,对于安装有单片机的电路来说,只需更改单片机中的程序就可以了,并不需更改原电路。另一方面,对于没有单片机的电路来说,就必须在元电路中加入定时器IC,或者用标准逻辑IC和FPGA构成逻辑电路,才能实现这个功能。
也就是说,在更改和添加新功能时,带有单片机的电路显然更加容易实现。这正是电器设备使用单片机的原因。单片机可真是个方便的东西哦!
来源:EDN电子技术设计
原文链接:https://mp.weixin.qq.com/s/U56Zj1ObMCnb6AZyFf238w
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱 demi@eetrend.com 进行处理。
全新AC-DC控制器采用已向Würth Elektronik eiSos授权的Inde-Flux™变压器技术,简化设计,减小尺寸并降低成本
在现代离线AC-DC电源解决方案中,可编程性和自适应控制提供了智能家居设备所需的灵活性和智能性,以便更好地与电源系统连接。在这些系统中,次级侧单片机(MCU)通常无法在不使用独立偏置电源的情况下启动系统。Microchip Technology Inc.(美国微芯科技公司)推出一款全新参考设计,利用MCP1012高压辅助AC-DC控制器解决了这一问题,可在许多应用中取消独立偏置电源。MCP1012离线辅助器件使系统能将功率和占空比的控制转移到次级侧单片机上。通过简化设计、减小尺寸和成本,系统与负载之间的控制可以实现更加精确和有目的地耦合。
参考设计采用专利隔离技术用于隔离反馈。这项专利隔离技术称为Inde-Flux变压器技术,已向Würth Elektronik eiSos公司授权。Inde-Flux变压器(部件编号750318659)是Würth Elektronik eiSos利用该专利制造的第一款变压器,将作为Microchip 15W MCP1012离线参考设计的组件出售。这款变压器将信号功率和信号通信结合到一个器件中,无需光反馈或独立的信号变压器。全新参考设计还可以选择采用更传统的方法,使用平面脉冲变压器,与更传统的光耦合器和信号变压器一起工作。通过使用该变压器和Microchip新推出的MCP1012 AC-DC控制器以及SAM D20系列32位单片机组合,可实现次级侧控制。
MPC1012初级侧辅助控制器为次级侧单片机提供了系统启动、门控和保护离线反激转换器的功能。该器件具有一系列功能,如直接测量和主动稳压或稳流,通过直接闭环实现高环路带宽,以及简化负载参考系统的通信。
15W MCP102离线参考设计为15W离线电源设计提供了主要工作元素,并配备了必要固件,以消除初级侧辅助电源。这可以降低系统的复杂性,包括消除许多应用中对光耦的需求,如家电和智能音箱。在Würth Elektronik eiSos的支持下,Inde-Flux变压器技术可根据需要扩展到不同电压和功率水平的标准和定制变压器设计。
Microchip模拟、电源和接口业务部高级副总裁Rich Simoncic表示:“将采用Inde-Flux技术的Würth Elektronik eiSos变压器与我们的MCP1012 AC-DC控制器和SAM D20系列32位单片机相结合,为离线电源管理创造了一个独特的解决方案。这些器件能够更简单、更可靠地实现主元件和辅助元件之间的复杂双向通信,这些元件用于许多利用离线电源的隔离应用中。当解决方案用于具有次级侧单片机的系统时,客户可节省高达60%的偏置电源面积,并将偏置电源物料清单成本降低3美元以上。”
开发工具
15W MCP1012 离线参考设计包括用户指南,并附带原理图和物料清单、设计文件、固件和一个演示装置。Microchip还为MCP1012 AC-DC控制器提供了基础款1W评估板DT100118。
供货与定价
15W MCP1012离线参考设计,部件编号为EV37F82A,现已上市,每件售价225美元。DT100118 1W参考设计现已上市,每件售价115美元。MCP1012-V/EKA现已上市,5000件起售的单价是0.40美元起。
如需了解更多信息,请联系Microchip销售代表、全球授权分销商或访问Microchip网站。欲购买本新闻稿提及的产品,请访问 Microchip直销网站或联系Microchip授权分销商。
Microchip Technology Inc. 简介
Microchip Technology Inc.是致力于智能、互联和安全的嵌入式控制解决方案的领先供应商。 其易于使用的开发工具和丰富的产品组合让客户能够创建最佳设计,从而在降低风险的同时减少系统总成本,缩短上市时间。Microchip的解决方案为工业、汽车、消费、航天和国防、通信以及计算市场中12万多家客户提供服务。Microchip总部位于美国亚利桑那州Chandler市,提供出色的技术支持、可靠的产品交付和卓越的质量。详情请访问公司网站www.microchip.com。
单片机的状态机框架!
demi 在 提交
为什么很多单片机的工作电压是5V?
demi 在 提交