MCU是微控制器单元的缩写。 中文称为微控制器,俗称单片机。 它适当降低了CPU的频率和规格,并集成了存储器、计数器、USB、A/D转换、UART、PLC、DMA等外围接口。LCD驱动电路集成在单芯片上,形成芯片级计算机,可以为不同的应用提供不同的控制组合,如手机、PC外设、遥控器、汽车电子、工业步进电机、机器人手臂控制等。 等等,你可以看到MCU了。
微控制器发展简史
微控制器的历史并不长,但发展非常迅速。 它的生产和发展一般与微处理器(CPU)的生产和发展同步。 自1971年美国英特尔公司首次推出4位微处理器以来,其发展至今大致可分为五个阶段。 下面介绍一下Intel公司的微控制器的发展情况。
1971~1976
微控制器发展的初级阶段。 1971年11月,Intel首先设计了Intel 4004,这是一款集成度为2000个晶体管/芯片的4位微处理器,配备了RAM、ROM和移位寄存器,形成了第一个MCS-4微处理器。 推出8位微处理器Intel 8008,以及其他公司推出的8位微处理器。
1976年至1980年低性能单片机阶段。以1976年Intel推出的MCS-48系列为代表,采用单片结构,集成了8位CPU、8位并行I/O接口、8位定时器/计数器、半导体芯片上的RAM和ROM。 虽然其寻址范围有限(不超过4 KB),没有串行I/O,RAM和ROM容量较小,中断系统也比较简单,但其功能可以满足一般工业控制和智能的需要。仪器仪表。
1980年到1983年是高性能单片机阶段。 现阶段推出的高性能8位单片机一般都具有串口、多级中断处理系统以及多个16位定时器/计数器。 片上RAM和ROM容量增大,寻址范围可达64KB。 有些芯片还带有A/D转换接口。
16 位微控制器阶段从 1983 年到 20 世纪 80 年代末。 1983年,Intel推出高性能16位微控制器MCS-96系列。 由于采用了最新的制造技术,芯片集成度高达12万个晶体管/芯片。
20世纪90年代,微控制器在集成度、功能、速度、可靠性、应用领域等各方面都发展到了更高的水平。
2 单片机的分类及应用
MCU按照存储器类型可以分为两种类型:不带片上ROM的和带片上ROM的。 对于没有片上ROM的芯片,必须外接EPROM才可以使用(典型的是8031); 片上ROM的芯片分为片上EPROM型(典型芯片为87C51)、MASK片上掩模ROM型(典型芯片为8051)、片上Flash型(典型芯片为89C51)等类型。
按用途可分为通用型和专用型; 根据数据总线的宽度和一次可以处理的数据字节的长度,可以分为8位、16位和32位MCU。
目前,国内MCU应用最广泛的市场是消费电子领域,其次是工业领域和汽车电子市场。 消费电子包括家用电器、电视、游戏机、音视频系统等。工业领域包括智能家居、自动化、医疗应用、新能源发电和配电等。 汽车领域包括汽车动力总成和安全控制系统。 到单片机。
3 单片机的基本功能
对于大多数MCU来说,以下功能是最常见和基本的。 对于不同的MCU,其描述方式可能有所不同,但本质上是相同的:
1. TImer(定时器):虽然TImer的种类很多,但可以概括为两类:一类是固定时间间隔的TImer,即它的定时时间由系统设定,不能由用户程序控制。 仅提供少数固定时间间隔供用户程序选择,如32Hz、16Hz、8Hz等。此类TImer在4位MCU中比较常见,因此可用于实现时钟、定时等相关功能。
另一种类型是可编程定时器。 顾名思义,该类Timer的计时时间可以由用户的程序来控制。 控制方式包括:时钟源选择、分频(Prescale)选择和Preset个数设置等,有的MCU同时具备这三项,有的MCU则可能只有其中一两个。 这类Timer应用非常灵活,实际用途也千变万化。 最常见的应用之一是用它来实现 PWM 输出。
由于时钟源可以自由选择,因此此类定时器一般与事件计数器结合使用。
2、IO口:任何MCU都有一定数量的IO口。 没有IO口,MCU就失去了与外界通信的通道。 根据IO口的可配置性,可分为以下几种:
纯输入或纯输出端口:这种类型的IO端口由MCU硬件设计决定。 只能输入或输出,不能通过软件实时设置。
直接读写IO口:例如MCS-51的IO口就属于此类IO口。 执行读IO口指令时,为输入口; 当执行写IO口指令时,自动成为输出口。
编程设置输入输出方向:该类IO口的输入或输出由程序根据实际需要来设置。 应用比较灵活,可以实现一些总线级的应用,如I2C总线、各种LCD、LED Drivers控制总线等。
对于IO口的使用,必须牢记的一点是:对于输入口,必须有明确的电平信号,保证其不能悬空(这可以通过加上拉或上拉来实现)下拉电阻); 对于输出端口,其输出状态电平必须考虑其外部连接条件,并应保证在Standby或静态状态下无拉电流或灌电流。
3、外部中断:外部中断也是大多数MCU的基本功能。 一般用于信号的实时触发、数据采样和状态检测。 中断方式有上升沿触发、下降沿触发和电平触发。 外部中断一般通过输入端口来实现。 如果是IO口,只有设置为输入时才会开启中断功能; 如果是输出口,则会自动关闭外部中断功能(ATMEL的ATiny系列有一些例外,输出口也可以触发中断功能)。 外部中断的应用如下:
外部触发信号的检测:一是基于实时性要求,如晶闸管的控制、突发信号的检测等,二是出于节省电能的需要。
信号频率的测量:为了保证不漏掉信号,外部中断是理想的选择。
数据解码:在远程控制应用领域,为了降低设计成本,常采用软件对各种编码数据进行解码,如曼彻斯特编码、PWM编码等解码。
按键检测和系统唤醒:对于进入Sleep状态的MCU,一般需要通过外部中断来唤醒。 最基本的形式是按键,它通过按键的动作产生电平变化。
4、通信接口:MCU提供的通信接口一般有SPI接口、UART、I2C接口等,分别介绍如下:
SPI接口:此类接口是大多数MCU提供的最基本的通信方式。 其数据传输由同步时钟控制。 信号包括:SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)和Ready信号; 某些情况下,可能没有Ready信号; 这种类型的接口可以工作在Master模式或Slave模式。 通俗的说法是,取决于谁提供时钟信号。 提供时钟的一方是Master,对方则是Slaver。
UART(通用异步接收发送):是最基本的异步传输接口。 它只有两条信号线:Rx 和 Tx。 基本数据格式为:起始位 + 数据位(7 位/8 位)+ 奇偶校验位(偶数、奇数或无)+ 停止位(1~2 位)。 一位数据所占用的时间称为波特率。
对于大多数MCU来说,数据位长度、数据校验方式(奇校验、偶校验或无校验)、停止位长度和波特率都可以通过程序编程灵活设置。 当然。 此类接口最常用的方法是与PC机的串口进行通信。
I2C接口:I2C是Philips公司开发的一种数据传输协议。 它还使用 2 个信号来实现:SDAT(串行数据输入和输出)和 SCLK(串行时钟)。 它最大的好处是可以将多个设备连接到这条总线上,并通过地址进行识别和访问; I2C总线的最大好处之一是可以非常方便地通过IO口使用软件来实现,并且其传输数据速率完全由SCLK控制。 控制时可以快也可以慢,不像UART接口对速度有严格的要求。
5、Watchdog(看门狗定时器):看门狗也是大多数MCU的基本配置(部分4位MCU可能没有此功能)。 大多数MCU的Watchdog只能允许程序复位而不能复位。 关闭(有的在烧入程序时设置,如Microchip PIC系列MCU),而有的MCU则通过特定方式决定是否打开,如三星的KS57系列。 只要程序访问看门狗寄存器,它就会自动打开并且不能再次关闭。 一般来说,看门狗的复位时间是可以可编程设置的。 Watchdog最基本的应用是为因意外故障而崩溃的MCU提供自我恢复能力。
4 全球主流微控制器厂商
(排名不分先后,按主流厂商整理,如有遗漏,请在评论区补充)
1.飞思卡尔+恩智浦(Freescale+NXP):荷兰,主要提供16位和32位MCU。 应用:汽车电子、LED 和普通照明、医疗保健、多媒体融合、家用电器和电动工具、楼宇自动化技术电机控制、电源和电源转换器、能源和智能电网、自动化、计算机和通信基础设施。
2. Microchip+Atmel(Microchip Technology+Atmel):美国,主要提供16位和32位MCU。 应用领域:汽车电子、工业用途、电机控制、汽车、楼宇自动化、家用电器、家庭娱乐、工业自动化、照明、物联网、智慧能源、移动电子设备、电脑周边设备。
3、Cypress+Spansion(赛普拉斯+Spansion半导体):美国,主要提供8位、16位、32位MCU。 应用领域:汽车电子、家用电器、医疗、消费电子、通信和电信、工业、无线。
4、ADI(Analog Devices):美国,主要提供8位、16位、32位MCU。 应用:航空航天和国防、汽车应用、建筑技术、通信、消费电子产品、能源、医疗保健、仪器仪表和测量、电机、工业自动化、安全。
5、英飞凌:德国,主要提供16位和32位MCU。 应用领域:汽车电子、消费电子、工程、商用和农用车辆、数据处理、电动交通、工业应用、医疗设备、移动设备、电机控制和驱动、电源、摩托车、电动自行车和小型电动汽车、智能电网、照明、太阳能系统解决方案、风能系统解决方案。
6. ST微电子:意大利/法国,主要提供32位MCU。 应用:LED 和普通照明、交通、医疗保健、多媒体融合、家用电器和电动工具、楼宇自动化技术电机控制、电源和电源转换器、能源和智能电网、自动化、计算机和通信基础设施。
7.高通:美国,主要提供16位和32位MCU。 应用:智能手机、平板电脑、无线调制解调器。
8、德州仪器:美国,主要提供16位和32位MCU。 应用范围:汽车电子、消费电子、医疗设备、移动设备、通讯。
9.美信(Maxim):美国,主要提供32位MCU。 应用范围:汽车电子、消费电子、工业应用、安防。
日本、韩国
1.瑞萨:日本,主要提供16位和32位MCU。 应用范围:计算机及周边设备、消费电子、健康及医疗电子、汽车电子、工业、通讯等。
2、东芝:日本,主要提供16位和32位MCU。 应用范围:汽车电子、工业用途、电机控制、无线通讯、手机、电脑及周边设备、影像及音视频、消费类(家电)、LED照明、安防、电源管理、娱乐设备。
3.富士通:日本,主要提供32位MCU。 应用范围:汽车、医疗、机械、家电。
4.三星电子:韩国,主要提供16位和32位MCU。 应用领域:汽车电子、工业用途、电机控制、汽车、楼宇自动化、家用电器、家庭娱乐、工业自动化、照明、物联网、智慧能源、移动电子设备、电脑周边设备。
中国区▍中国大陆区
1、西格玛微电子:主要提供32位MCU,应用范围:电信、制造、能源、交通、电力等。
2、珠海轨道:主要提供32位MCU,应用范围:航空航天:卫星站船舶、飞机; 高端工业控制:嵌入式计算机; 船舶控制、工业控制、电力设备、环境监测。
3.兆易创新:主要提供32位MCU,应用范围:工业自动化、人机界面、电机控制、安防监控、智能家居、物联网。
4、盛思微电子:主要提供8位和32位MCU。 应用范围:小家电、消费电子、遥控器、鼠标、锂电池、数码产品、汽车电子、医疗仪器与测量、玩具、工业控制、智能家居及安防等领域。
5、芯海科技:主要提供16位和32位MCU。 应用范围:仪器仪表、物联网、消费电子、家电、汽车电子。
6、联华集成电路:主要提供8位和16位MCU。 应用范围:消费电子、白色家电、工业控制、通讯设备、汽车电子、计算机。
7、珠海建荣:主要提供8位MCU,应用范围:家用电器、移动电源。
8.炬芯科技:主要提供8位至32位MCU,应用范围:平板电脑、智能家居、多媒体、蓝牙、wifi音频。
9、爱思克微电子:主要提供8位和16位MCU。 应用范围:消费类芯片、通信芯片、信息芯片、家用电器。
10、华芯微电子:主要提供8位和4位MCU。 应用:卫星接收器、手机充电器、万年历和一体化遥控器。
11、上海贝岭(华大半导体控股):主要提供8位、16位、32位MCU。 应用:计算机外围设备、HDTV、电源管理、小家电和数字电器。
12、海尔集成电路:主要提供14位、15位、16位MCU。 应用范围:消费电子、汽车电子、工业、智能仪器仪表。
13、北京君正:主要提供32位MCU,应用范围:可穿戴设备、物联网、智能家电、汽车、消费电子、平板电脑。
14、中微电子:主要提供8位MCU,应用范围:智能家电、汽车电子、安防监控、LED照明及景观、智能玩具、智能家居、消费电子。
15、神舟龙芯集成电路:主要提供32位MCU,应用范围:电力监控、智能电网、工业数字控制、物联网、智能家居、数据监控。
16、紫光微电子:主要提供8位和16位MCU。 应用范围:智能家电。
17、时代民芯:主要提供32位MCU,应用范围:汽车导航、交通监控、渔船监管、电力电信网络。
18、华润硅微电子(华润微电子子公司):主要提供8位和16位MCU。 应用范围:消费电子、工业控制、家用电器。
19、国芯科技:主要提供32位MCU,应用范围:信息安全领域、办公自动化领域、通信网络领域、信息安全领域。
20、中天微:主要提供32位MCU。 应用:智能手机、数字电视、机顶盒、汽车电子、GPS、电子阅读器和打印机。
21、华润微电子:主要提供8位和16位MCU。 应用范围:家用电器、消费电子、工业自动化控制的通用控制电路。
22、中盈电子:主要提供4位、8位、16位、32位MCU。 应用范围:家用电器、电机。
23、智能微电子:主要提供32位,应用范围:电机控制、蓝牙控制、高清显示、无线充电、无人机、微型打印机、智能标签、电子烟、LED点阵屏等。
24、新唐科技:主要提供8位MCU,应用范围:照明、物联网等。
25、东软Carrier:主要提供8位和32位MCU。 应用领域:家电、智能家居、仪器仪表、液晶面板控制器、工业控制等。
26、Betley:主要提供32位MCU,应用范围:智能家居、工业控制和消费产品。
27、圣泉科技:主要提供8位MCU,应用范围:汽车、教育、工控、医疗等中小型显示面板。
28、航顺芯片:主要提供8位和32位MCU。 应用范围:汽车、物联网等。
29、复旦微电子:主要提供16位和32位MCU。 应用:智能电表、智能门锁等。
30、华大半导体:主要提供8位、16位、32位MCU。 应用领域:工业控制、智能制造、智慧生活、物联网。
▍中国台湾
1、宏晶科技:主要提供32位MCU。 应用范围:通讯、工业控制、信息家电、语音。
2、盛群半导体:主要提供8位和32位MCU。 应用范围:消费电子、LED照明等。
3、凌阳科技:主要提供8位和16位MCU。 适用范围:家庭影音。
4、中盈电子:主要提供4位和8位MCU。 应用范围:充电器、移动电源、家电、工业控制。
5、松瀚科技:主要提供8位和32位MCU。 应用范围:遥控器、智能充电器、大小系统、电子秤、耳温计、血压计、胎压计、各种测量及健康设备。
6、华邦电子:主要提供8位和16位MCU。 应用范围:汽车电子、工业电子、网络、计算机、消费电子、物联网。
7、十速技术:主要提供4位、8位、51位MCU。 应用范围:遥控器、小家电。
8、友华微电子:主要提供4位和8位MCU。 应用范围:录音集成电路产品、消费类电子产品、家用产品。
9、迎光科技微控制器:主要提供4位和8位MCU。 应用范围:机械、自动化、家电、机器人。
10、义隆电子:主要提供8位和16位MCU。 应用范围:消费电子、电脑、智能手机。
学习微控制器的 5 个技巧
任何MCU的基本原理和功能都是类似的。 唯一的区别是外围功能模块、指令系统等的配置和数量。
对于指令系统来说,虽然它们在形式上看起来有很大不同,但实际上只是符号的不同。 它们所代表的含义、要完成的功能、寻址方式基本相似。
要了解一款MCU,首先需要了解它的ROM空间、RAM空间、IO口数量、定时器数量及定时方式、提供的外围功能模块(Peripheral Circuit)、中断源、工作电压和功耗等。
了解了这些MCU的特性之后,下一步就是将所选MCU的功能与实际项目开发所需的功能进行比较,明确哪些资源是当前需要的,哪些是本项目中没有使用到的。
对于项目中需要用到但所选MCU不提供的功能,需要仔细了解MCU的相关信息,才能采用间接的方法来实现。 例如,正在开发的项目需要与PC机的COM口进行通信,而所选的MCU没有提供UART口,则可以考虑使用外部中断来实现。
对于项目开发所需的资源,您需要仔细理解和阅读Manua*,而不必要的功能模块则可以忽略或浏览。 对于单片机的学习来说,应用是关键,也是主要目的。
明确了单片机的相关功能后,就可以开始编程了。
对于初学者或者第一次使用该MCU的设计者来说,可能会遇到很多不清楚MCU功能的情况。 对于此类问题,有两种解决方法。 一是编写专门的验证程序,了解资料中描述的功能; 其他的可以暂时忽略。 在单片机程序设计中,按照自己目前的理解来编写,留待调试时修改和完善。 前一种方法适合时间比较宽松、初学者的项目,而后一种方法适合有一定单片机开发经验的人或者项目工期比较紧张的情况。
不要花特别的时间来理解命令系统。 指令系统只是逻辑描述的符号。 编程时只能根据自己的逻辑和程序的逻辑要求检查相关指令。 随着编程的进展,你会对指令系统越来越熟悉,甚至可以在不知不觉中记住它。
6 单片机编程工程师总结
1、养成总结的好习惯。 总结不仅是对自己学习的总结,也是对学习过程的回顾和深化。 也可以避免第二次犯错误。
2、写程序之前,首先要对项目有一个熟悉的了解,心中有数,勾勒出一个总体框架。 仔细考虑如何布局、什么是最合理的布局是非常重要的。 需要先分析一下先做哪个模块,这个模块的具体步骤,每个功能如何命名,与其他模块的连接等等,最好拿一张纸,记下重要的流程。
3、C语言模块化编程,首先要划分各个模块,逐个模块进行编程,确定一个顺序,按照顺序,模块成功后,再编写下一个模块。 对于头文件来说,在模块写入之后再写入模块的头文件。
4. 当警告出现时,不要忽视。 说明程序肯定有不合理的地方。 你需要找出根源并找到解决方案。 寻找来源时要具体。 你可以上网搜索这方面的信息,或者向别人寻求建议。 例如,另一个项目中的main函数实际上被添加到了这个项目中。 实际上存在重复的函数名称。 一步步分析实验现象和进展也是有原因的。 定义端口时也选择了错误的接口。 有时候,实在解决不了的时候,休息一下思考一下也是好的。 不管多么简单,你都要注意,因为可能会有错误。
在单片机应用开发中,代码使用效率、单片机抗干扰和可靠性等问题仍然困扰着。 现在我们总结一下单片机开发中应该掌握的几项基本技能。
7 单片机开发技巧
1.如何减少程序中的Bug
关于如何减少程序bug,首先应该考虑以下系统运行过程中应考虑的越界管理参数。
2.如何提高C语言编程代码的效率
采用C语言进行单片机编程是单片机发展和应用的必然趋势。 如果您想在使用 C 语言编程时获得最大效率,最好熟悉您正在使用的 C 编译器。 首先测试一下各个C语言编译器对应的汇编语言语句行数,这样就可以清楚的知道效率。 以后编程时,尽量使用编译效率最高的语句。 每个C编译器都会有一定的差异,因此编译效率也会不同。 用于嵌入式系统的优秀C编译器的代码长度和执行时间仅比用汇编语言编写的相同函数长5-20%。
对于开发时间紧张的复杂项目,可以使用C语言,但前提是你对MCU系统的C语言和C编译器非常熟悉。 特别注意C编译系统支持的数据类型和算法。 虽然C语言是最常见的高级语言,但不同的MCU厂家有不同的C语言编译系统,特别是在一些特殊功能模块的操作上。 因此,如果不了解这些特性,在调试时就会出现很多问题,从而导致执行效率比汇编语言低。
3、如何解决单片机的抗干扰问题
防止干扰最有效的方法就是去除干扰源,阻断干扰路径,但这往往很难做到,所以只能看单片机的抗干扰能力是否足够强。 在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好等优点越来越受到人们的重视。
单片机干扰最常见的现象是复位。 对于跑掉的程序,实际上可以利用软件陷阱和看门狗将程序恢复到复位状态。 因此,单片机软件抗干扰最重要的是复位状态的处理。
一般微控制器都会有一些标志寄存器,可以用来判断复位的原因; 另外,你也可以自己在RAM中埋一些flag。 每次程序复位时,可以通过判断这些标志来确定不同的复位原因; 也可以根据不同的flag直接跳转到相应的程序。 这样可以让程序持续运行,用户在使用时不会注意到程序已被重置。
4、如何测试单片机系统的可靠性
当一个单片机系统设计完成后,针对不同的单片机系统产品会有不同的测试项目和方法,但有一些是必须测试的:
有时,我们还可以模拟人类使用过程中可能出现的损坏。 例如,故意用人体或服装面料摩擦微控制器系统的接触端口,以测试抗静电能力。 使用大功率电钻靠近单片机系统工作,测试抗电磁干扰的能力。
综上所述,单片机已成为计算机发展和应用的一个重要方面。 单片机应用的重要意义在于它从根本上改变了传统控制系统的设计思想和设计方法。
过去必须通过模拟电路或数字电路实现的大部分功能现在都可以使用微控制器通过软件方法来实现。 这种以软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一场革命。
另外,在开发应用过程中,我们要掌握技巧,提高效率,使其能够用于更广泛的用途。 (来源网络,张巧龙整理)
原文链接/s/72854n8XMBwxdPVJb7vk1Q