应广单片机(史上强单片机科普)


应单片机(史上最强单片机科普)

是MCU微控制器单元的缩写,中文叫微控制器,俗称单片机。就是适当降低CPU的频率和规格,将存储器、计数器、USB、A/D转换、UART、PLC、DMA甚至LCD驱动电路等外设接口集成在单个芯片上,形成芯片级计算机,可以针对手机、PC外设、遥控器等不同应用,对汽车电子、工业进行不同的组合控制。

单片机发展简史

单片机的历史不长,但发展很快。它的产生和发展与微处理器(CPU)的产生和发展大致同步。自1971年Intel公司首次推出4位微处理器以来,其发展大致可以分为五个阶段。下面将以Intel的单片机的发展为代表来介绍。

1971 ~1976

单片机发展的初级阶段。1971年11月,Intel公司首先设计出集成了2000个晶体管/芯片的4位微处理器Intel 4004,并配备了RAM、ROM和移位寄存器,构成了第一个MCS-4微处理器,随后又推出了8位微处理器Intel 8008以及其他公司相继推出的8位微处理器。

1976 ~1980

低性能MCU级。例如,英特尔公司在1976年推出的MCS-48系列采用单片结构,在一个半导体芯片上集成了8位CPU、8位并行I/O接口、8位定时器/计数器、RAM和ROM。虽然它的寻址范围有限(不超过4 KB),没有串行I/O,RAM和ROM容量小,中断系统也比较简单,但其功能可以满足一般工业控制和智能仪器的要求。

1980 ~1983

高性能MCU级。现阶段推出的高性能8位单片机一般都有串口、多级中断处理系统和多个16位定时器/计数器。片内RAM和ROM容量增加,寻址范围可达64 KB。一些片内器件还具有模数转换接口。

从1983年到80年代末

16位MCU级。1983年,Intel推出了高性能的16位单片机MCS-96系列。因为采用了最新的制造技术,芯片集成度达到了12万个晶体管/芯片。

在1990年代

单片机在集成度、功能、速度、可靠性和应用领域都在向更高的水平发展。

单片机的分类及应用

单片机按其存储器类型可分为非片上ROM型和片上ROM型两种。对于没有片上ROM的芯片,需要连接一个EPROM(通常为8031)才能使用。片上ROM类型的芯片分为片上EPROM型(典型芯片为87C51)、片上掩膜ROM型(典型芯片为8051)、片上Flash型(典型芯片为89C51)等类型。

按用途可分为通用型和专用型;根据数据总线的宽度和一次能处理的数据字节的长度,可分为8位、16位和32位MCU。

目前国内应用最广泛的MCU市场是消费电子,其次是工业领域和汽车电子市场。消费包括家用电器、电视机、游戏机、影音系统等。行业包括智能家居、自动化、医疗应用和新能源发电和配电。汽车领域包括汽车动力信息资源网络组件和安全控制系统等。

单片机的基本功能

对于大多数MCU,以下功能是最常见和最基本的。不同的MCU可能有不同的描述,但本质上基本相同:

定时器(TImer):定时器虽然种类繁多,但大致可分为两类:一类是固定时间间隔的定时器,即定时时间由系统设定,用户程序无法控制。系统只提供几个固定的时间间隔供用户程序选择,如32Hz、16Hz、8Hz等。这种定时器在4位单片机中比较常见,可以用来实现时钟、定时等相关功能。

另一种是可编程定时器。顾名思义,这种定时器的计时时间可以通过用户的程序来控制。控制方法包括:时钟源的选择、预分频的选择和预置数的设置等。有的MCU同时具备这三种,有的可能是其中的一种或两种。这种定时器的应用非常灵活,实际用途千变万化。最常见的应用之一就是用它来实现PWM输出。

因为时钟源可以自由选择,所以这种定时器通常与事件计数器结合使用。

IO端口:任何MCU都有一定数量的IO端口。没有IO端口,MCU将失去与外界的通信通道。根据IO口的可配置条件,可以分为以下几种类型:

纯输入或纯输出端口:这类IO端口由MCU硬件设计决定,只能输入或输出,不能通过软件实时设置。

直接读写IO口:比如MCS-51的IO口就属于这种类型的IO口。当执行读取IO口的指令时,为输入口;当执行写IO命令时,它将自动成为输出端口。

编程设置输入输出方向:这类IO口的输入或输出由程序根据实际需要设置,应用灵活,可以实现一些总线级的应用,如I2C总线、各种LCD和LED驱动器的控制总线等。

对于IO口的使用,一定要记住:对于输入口,一定要有明确的电平信号,保证不能浮空(可以通过增加上拉或下拉电阻来实现);对于输出端口,输出状态级必须考虑其外部连接,要保证待机或静态时没有拉电流或吸电流。

外部中断:外部中断也是大多数单片机的基本功能,一般用于信号的实时触发、数据采样和状态检测。中断模式由上升沿、下降沿和电平触发。外部中断通常通过输入端口实现。如果是IO口,其中断功能只有设置为输入时才会开启。如果是输出端口,外部中断功能会自动关闭(ATMEL的ATiny系列有一些例外,使用输出端口时也可以触发中断功能)。外部中断的应用如下:

外部触发信号检测:一种是基于实时性的要求,如可控硅的控制,突发信号的检测等。,而另一个是需要省电。

信号频率的测量,为了保证信号不被遗漏,外部中断是最理想的选择。

数据解码:在遥控应用领域,为了降低设计成本,往往需要用软件对各种编码数据进行解码,如曼彻斯特编码、PWM编码等。

按键检测和系统唤醒:对于进入睡眠状态的MCU,一般需要通过外部中断来唤醒,最基本的形式就是按键,通过按键的动作产生电平的变化。

通信接口:MCU提供的通信接口一般有SPI接口、UART、I2C接口等。,分别描述如下:

SPI接口:该接口是大多数单片机提供的最基本的通信方式,其数据传输受同步时钟控制。这些信号包括SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)和就绪信号。在某些情况下,可能没有就绪信号;这种接口可以在主模式或从模式下工作。通俗点说,就是看时钟信号是谁提供的。提供时钟信息资源网络的一方为主,另一方为从。

Uart(通用异步接收发送):它是最基本的异步传输接口。它的信号线只有Rx和Tx。基本数据格式为:起始位+数据位(7位/8位)+奇偶位(偶数、奇数或无)+停止位(1 ~ 2位)。一位数据占用的时间称为波特率(波特率)。

对于大多数单片机来说,数据的长度、数据校验方式(奇校验、偶校验或不校验)、停止位的长度和波特率都可以通过编程灵活设置。这种接口最常见的方式是与PC机的串口通信。

I2C接口:I2C是飞利浦开发的数据传输协议,也是通过SDAT(串行数据输入输出)和SCLK(串行时钟)两种信号实现的。它最大的优点是可以在这条总线上挂接多个设备,通过地址来识别和访问它们。I2C总线最大的一个优点就是通过IO口用软件实现非常方便,其数据速率完全由SCLK控制,可快可慢。与UART接口不同,它有严格的速率要求。

看门狗(看门狗定时器):看门狗也是大部分MCU的基本配置(有些4位MCU可能没有这个功能)。大多数MCU的看门狗只能允许程序复位它而不能关闭它(有些是在程序烧入时设置的,比如Microchip PIC MCU)。有些MCU以特定的方式决定是否开启,比如三星的KS57系列。只要程序访问看门狗寄存器,就会自动打开,不能再关闭。一般来说,看门狗的复位时间是可以编程的。Watchdog最基本的应用是为MCU提供因意外故障而崩溃的自我恢复能力。

单片机的学习技巧

任何MCU的基本原理和功能都差不多,只是外围功能模块的配置和数量,指令系统等。

对于指令系统来说,虽然形式看似千差万别,但实际上只是不同的符号,其含义、要完成的功能和寻址方式基本相似。

要了解一个MCU,首先要知道它的ROM空室、RAM空室、IO端口号、定时器号和定时模式、提供的外围电路、中断源、工作电压和功耗等。

了解了这些MCU的特性之后,接下来就是将所选MCU的功能与实际项目开发所需要的功能进行对比,明确目前需要哪些资源,哪些资源在本项目中没有用到。

对于项目中需要用到但所选MCU没有提供的功能,需要仔细了解MCU的相关信息,以便间接实现。例如,如果开发的项目需要与PC的COM口通信,而选用的MCU没有提供UART口,可以通过外部中断来实现。

对于项目开发所需的资源,需要仔细理解和阅读其手册*,不必要的功能模块可以忽略或浏览。对于单片机学习来说,应用是关键,也是主要目的。

明确了MCU的相关功能后,就可以通过接管信息资源网开始编程了。

对于初学者或者第一次使用这个单片机的设计师来说,可能会有很多地方对单片机的功能描述不太清楚。对于这样的问题,有两种方法可以解决。一种是编写专门的验证程序,理解数据中描述的功能。另外一个可以暂时忽略,单片机编程按我目前的理解写,留待调试时修改完善。前一种方法适合时间比较宽松的项目和初学者,后一种方法适合有一定单片机开发经验的人或者时间紧迫的项目。

系统不应该花时间去理解指令。指令系统只是逻辑描述的符号。只有在编程的时候,才可以根据自己的逻辑和程序的逻辑要求去查相关的指令。而且随着编程的进行,你会越来越精通指令系统,甚至可以不自觉的背下来。

单片机编程

单片机的编程和PC机的编程有很大的区别。虽然现在基于C的单片机开发工具越来越流行,但是对于一个高效的程序代码和一个喜欢用汇编的设计师来说,汇编语言仍然是最简洁有效的编程语言。

对于MCU编程来说,其基本框架可以说是大体一致的,一般分为三个部分:初始化部分(这是MCU编程与PC最大的区别)、主程序循环体和中断处理程序,分别描述如下:

初始化:对于所有单片机程序的设计来说,外化是最基本也是最重要的一步,一般包括以下内容:

屏蔽所有中断并初始化堆栈指针:初始化部分一般不希望任何中断发生。

清空系统的RAM区域,显示内存:虽然有时候可能不完全需要,但是从可靠性和一致性的角度,特别是为了防止意外错误,建议养成良好的编程习惯。

IO口的初始化:根据项目的应用需求,设置相关IO口的输入输出方式,为相反的输入口设置上拉或下拉电阻;对于输出端口,有必要设置其输出电平,以防止不必要的错误。

中断设置:对于项目需要的所有中断源,都要开启并设置中断的触发条件,而不使用的不必要的中断必须关闭。

其他功能模块的初始化:对于所有需要使用的MCU外围功能模块,必须根据项目的应用需求进行相应的设置。例如,对于UART通信,需要设置波特率、数据长度、校验模式和停止位长度,而对于编程器定时器,必须设置其时钟源、分频数和重载数据。

参数外化:MCU的硬件和资源外化后,下一步就是初始化程序中用到的一些变量和数据。这部分的初始化需要根据具体项目和程序的整体安排来设计。对于一些使用EEPROM保存预设项目数的应用,建议在初始化时将相关数据复制到MCU的RAM中,以提高程序对数据的访问速度,降低系统功耗(原则上访问外部EEPROM会增加功耗)。

主程序循环体:大多数MCU都是长时间连续运行的,所以它的主程序体基本上是以循环的方式设计的。对于有多种工作模式的应用,可能会有多个循环体,可以通过状态标志进行转换。对于主程序体,通常安排以下模块:

计算程序:计算程序一般比较耗时,所以坚决反对放在任何中断中,尤其是乘除法。

显示程序:主要用于带有外部LED和LCD驱动器的应用程序。

中断处理程序:中断处理程序主要用于处理实时性要求高的任务和事件,如外部突发信号检测、按键检测与处理、定时计数、LED显示屏扫描等。

一般来说,中断程序应该保持代码尽可能的简洁。对于不需要实时处理的功能,可以在中断中设置触发标志,然后主程序就可以执行特定的事务了——这一点很重要,尤其是对于低功耗、低速度的MCU,需要保证所有中断的及时响应。

对于不同任务体的安排,不同的MCU有不同的处理方法。

例如,对于低速低功耗的MCU(Fosc=32768Hz)应用,考虑到这类项目都是手持设备,使用普通的LCD显示,对按键和显示的响应要求实时性很高,因此,按键的动作和数据的显示都要采用定时中断的方式来处理。对于高速MCU,比如FOSC的1mhz应用,因为此时MCU有足够的时间执行主程序循环体,所以可以只在相应的中断中设置各种触发标志,把所有任务放在主程序体中执行。

在单片机编程中,有一点需要特别注意,就是防止中断和主程序体中同时访问或设置同一个变量或数据。有效的防范方法是将这类数据的处理安排在一个模块中,通过判断触发标志来决定是否执行该数据的相关操作;而在其他程序体(主要是中断)中,只为需要处理数据的地方设置了触发标志。――这可以确保数据执行的可预测性和唯一性。

全球主流MCU制造商

欧美地区

1.飞思卡尔+恩智浦(飞思卡尔+恩智浦):荷兰,主要提供16位和32位MCU。应用:汽车电子、LED和普通照明、医疗保健、多媒体融合、家用电器和电动工具、楼宇自动化技术、电机控制、电源和功率转换器、能源和智能电网、自动化、计算机和通信基础设施。

2.微芯片+Atmel(微芯片技术+Termel):美国主要提供16位和32位MCU。应用领域:汽车电子、工业应用、电机控制、汽车、楼宇自动化、家用电器、家庭娱乐、工业自动化、照明、物联网、智能能源、移动电子设备、计算机外设。

3.Cypress+Spansion:美国,主要提供8位、16位、32位MCU。应用:汽车电子、家用电器、医疗保健、消费电子、通信和电信、工业和无线。

4.ADI(阿德半导体):美国主要提供8位、16位、32位MCU。应用范围:航空空航空航天与国防、汽车应用、建筑技术、通信、消费电子、能源、医疗、仪器仪表与测量、电机、工业自动化与安防。

5.英飞凌:德国,主要提供16位和32位MCU。应用范围:汽车电子、消费电子、工程、商用车和农用车、数据处理、电动交通、工业应用、医疗设备、移动设备、电机控制和驱动、电源、电动自行车和摩托车用小型电动汽车、智能电网、照明、太阳能系统解决方案和风能系统解决方案。

6.ST微电子(ST Microelectronics):意大利/法国,主要提供32位MCU。应用:LED和普通照明、交通、医疗保健、多媒体融合、家用电器和电动工具、楼宇自动化技术电机控制、电源和功率转换器、能源和智能电网、自动化、计算机和通信基础设施。

7.高通:美国主要提供16位和32位单片机。应用:智能手机、平板电脑、无线调制解调器。

8.德州仪器:美国主要提供16位和32位MCU。应用:汽车电子,消费电子,医疗设备,移动设备,通信。

9.马克西姆:美国主要提供32位MCU。应用:汽车电子,消费电子,工业应用,安全。

日本和韩国

1.瑞萨(Renesas):日本主要提供16位和32位MCU。应用:计算机和外围设备,消费电子,医疗保健电子,汽车电子,工业和通信。

2.东芝:日本主要提供16位和32位MCU。应用:汽车电子、工业用、电机控制、无线通信、手机、计算机及外围设备、视频、音频和视频、消费类(家用电器)、LED照明、安全、电源管理、娱乐设备。

3.富士通:日本,主要提供32位MCU。应用:汽车、医疗、机械、家用电器。

4.三星电子:韩国主要提供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.英光科技MCU:台湾省,主要提供4位和8位MCU。应用:机械、自动化、家电、机器人。

10.艺龙电子:台湾省,主要提供8位和16位MCU。应用:消费电子,电脑和智能手机。

大陆地区

1.适马微电子:主要提供32位MCU,应用范围:电信、制造、能源、交通、电力等。

2.珠海欧比特:主要提供32位MCU,应用范围为:航空空航天:星箭站内的舰船、飞机;高端工业控制:嵌入式计算机;船舶控制、工业控制、电力设备、环境监测。

3.赵一创新:主要提供32位MCU,可用于工业自动化、人机界面、电机控制、安防监控、智能家居、物联网等领域。

4.嵊泗微电子:主要提供8位和32位MCU,应用范围:小家电、消费电子、遥控器、鼠标、锂电池、数码产品、汽车电子、医疗仪器与测量、玩具、工业控制、智能家居、安防等领域。

5.新海科技:主要提供16位和32位MCU,应用范围:仪器仪表、物联网、消费电子、家电、汽车电子。

6.联华IC:主要提供8位和16位MCU,应用范围:消费电子、白色家电、工业控制、通讯设备、汽车电子、计算机。

7.珠海荣剑:主要提供8位MCU,可用于家用电器和移动电源。

8.聚鑫科技:主要提供8位到32位MCU,应用范围:平板电脑、智能家居、多媒体、蓝牙、wifi音响。

9.爱思客微电子:主要提供8位和16位MCU,应用范围:消费芯片、通讯芯片、信息芯片、家电。

10.华信微电子:主要提供8位和4位MCU,应用范围:卫星接收器、手机充电器、万年历、一体机遥控器。

11.上海贝岭(华大半导体控股):主要提供8位、16位、32位MCU,应用范围:电脑外设、高清电视、电源管理、小家电、高清多媒体。

12.海尔IC:主要提供14位、15位、16位MCU,应用范围:消费电子、汽车电子、工业、智能仪器。

13.北京郑钧:主要提供32位MCU,可用于可穿戴设备、物联网、智能家电、汽车、消费电子、平板电脑。

14.微半导体:主要提供8位MCU,应用范围:智能家电、汽车电子、安防监控、LED照明及景观、智能玩具、智能家居、消费电子。

15.神舟龙芯IC:主要提供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.东软载波:主要提供8位和32位MCU,应用范围:家电、智能家居、仪器仪表、液晶面板控制器、工业控制等。

26.贝特勒:主要提供32位MCU,应用范围:智能家居、工业控制、消费类产品。

27.圣泉科技:主要提供8位MCU,可用于汽车、教育、工控、医疗等中小型显示面板。

28.航顺芯片:主要提供8位和32位MCU,应用范围:汽车、物联网等。

29.复旦微电子:主要提供16位和32位MCU,应用范围:智能电表、智能门锁等。

30.华大半导体:主要提供8位、16位、32位MCU,应用范围包括工业控制、智能制造、智能生活、物联网等。

本文地址:[https://chuanchengzhongyi.com/kepu/a8fd9e4c04488afc.html]
排行老二取名字用哪个字(老二和老大起名的讲究)
上一篇 2024-05-05
得乐康米糠油的功效与作用
下一篇
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

相关推荐