MCU外设的形象理解

460 阅读6分钟

各位伙伴大家好,欢迎收看本期视频,

上个月的的时候我问过我们的一些业务员(包括新同事)关于 MCU 外设功能的理解情况,基本都是比较模糊或者不太清楚,其实像 MCU 外设这种客户经常会问到,比如这个型号带不带运放,带不带CAN,低功耗情况怎么样等等,立志混迹于MCU行业这些知识绝对是硬通货。 外设功能本质可以理解为 MCU 的三头六臂,你两个拳头一双金刚腿八块腹肌器张的要死,我四只手八条腿肩扛火箭炮手拿冲锋挂两颗手雷,拳脚再快有我子弹快?外设功能也是如此。引脚数量越多(四只手八条腿)或者引脚上集成的功能越多(手拿冲锋枪),MCU性能也更强劲,同样主频也越高,功耗也高,价格越贵(你看火箭炮便宜过吗)。

MCU的通用外设一般都有 Flash,RAM,GPIO,PDMA,WDT,Timer,PWM,RTC,ADC,DAC,ACMP,IntemalVoltageReference, ,UART,CAN,SP,12C,UID,UCID,VCC(电源线),GND(地线),还有一些特别的像 OPA,HALL 接口,Touch key,LCD Drver 等等,加上通用的烧录接口NRST,SWDIO,SWCLK(把程序下载到MCU里),超出外设范围的,例如凌鸥还有一款更厉害的双核 MCU 带一个DSP 单元,相当于多一个脑子,是大核的助理。累活脏活助理干,大核专注于自己的事,接下来我会挨个介绍各种外设。 Flash 说白了就是就是一个代码仓库,PC 机上写好的代码通过烧录口下载到 Fash 里,客户经常问的就是Flash多大,一般来讲,客户产品需要的Flash越大,说明产品功能越复杂。但是代码光保存在Flash里是没用的,得让代码运行起来。这个时候RAM (随机存取存储器)就发挥作用了,RAM像一个代码加工厂一样,处理着各种各样的指令,但是RAM每次只执行全部代码的一部分,所以RAM会比Flash小很多,RAM越大,同时处理的程序也就越多,因此手机8G的运行内存会比4G的流畅很多,一个重要原因就是打开的软件太多4G 的RAM不够用了。

GPIO(通用型输入输出)主要作用就是用来做输入输出口,输入口功能使用最广泛的是按键,我用某款MCU做了个遥控炸弹,按下按键输入一个高脉冲就可以引爆炸弹。做输出功能时,一号GPIO口接收到一个高脉冲信号后,经MCU处理,二号GPIO输出高电压引爆电子雷管进而引爆炸弹,除了这些以外,还具备控制和监视等功能,感兴趣的朋友可以百度一下。

PDMA(周边直接内存访问)是MCU内部信息传输的高速公路,一般数据传输都得经过MCU内核处理,但是PDMA直接绕过内核,减轻MCU处理数据的压力,好比坐火车中转和直达的区别。

WDT(看门狗定时器),顾名思义,它就是条看门狗,看门狗的作用就是防小偷防小三防老王,它为主人提供了安全保护以及预警功能,单片机内部程序执行的时候难免出错(死循环或者跑飞),出错的时候看门狗定时器会“叫”,输出一个高脉冲自动给单片机复位,实现单片机的安全保护。 Timer(定时器)就是定时作用,像闹钟一样,定时一段时间后提醒我该干什么事,它的同父异母兄弟叫RTC(实时时钟),一些工业仪表产品检测数据时要记录当地时间,RTC就发挥作用了,一天下来所有数据都有迹可循,方便工程人员分析处理。

也许很多业务员都知道PWM是脉宽调制,但对他的本质功能还是似懂非懂,路上的轿车,大货车,老头乐,天上飞机,海里核潜艇,驱动他们的都是发动机,也许他们外形不尽相同,但扮演的角色却大同小异,发动机就是一个动力源。PWM也是如此,调制不同的PWM信号产生不同的动力源驱动各种各样的产品,驱动LED发光,驱动电机旋转,驱动MOS管往复开关等等。

ADC 和DAC好比录音机和收音机这样的孪生兄弟,前者负责将模拟信号转换数字信号,后者负责将数字信号转换成模拟信号,ADC(录音机)将你的声音波形转码成数字量存储起来,DAC(收音机)将接收到的数字信号转换成声音信号通过扬声器播放出来。ACMP(模拟比较器)可以比较两个模拟信号的大小,我面前有两根电线,分别是10V 三相电和1000V三相电,分辨他们最好的办法就是用手摸一下,见效快去世也快。用ACMP辨别时可以判定为1000V比10V状态为1,否则为0,根据输出状态来辨别这两根电线。

IntemalVoltageReference为内部参考电压,无论外部温度怎样,这个电压值几乎不会波动,当ADC被用来检测电压时,它会是一个很优秀的电压标杆,保证采样精度。UART,CAN,SPI,I2C合称为通信四天王,复杂且内容多不好讲(RS232和RS485感兴趣自行百度),四种通信方式好比飞鸽传书,发短信,打电话,视频通话的区别,传输速度不同,传输距离不同,客户根据自己产品需求合理选择通信方式。

UID和UCID好比MCU的身份证号一样,不存在UID相同的两片MCU,UID除了可以用来当mac地址记录日志外,最主要的作用还是代码防盗,同样一段代码,烧录到一号MCU后再从一号MCU偷出来,放在二号MCU中是无法运行的,因为代码运行前会校对UID号,匹配不上代码就会瞎跑。

还有凌鸥MCU带的OPA(运算放大器)类似一个信号放大器,微弱的电流信号被放大后就可以被ADC检测到,像一些特殊需求的HALL(霍尔接口),Touch key(触摸按键),LCD driver(屏幕驱动)都是为一些特定行业或产品定制的外设,为客户降本增效提高性价比。

最后MCU上的VCC(电源线)和GND(地线)不知道是什么作用的,请自行提交离职申请,他妈的你就是新拓事业宏图上的绊脚石。好,本期视频到此结束,我们下期再见。