单片机类属集成块(简称IC,又称芯片),已广泛用于工业控制领域,其特点是采用超大规模集成电路技术,把具有数据处理能力的中央处理器(CPU)、时钟电路、随机存储器( RAM)只读存储器(ROM)、I/O(输入/输出)接口电路、中断系统定时/计时 器(CTC)等电路集成到一块硅片上,构成了一个完整的微型计算机系统(所以单片机又被称作微控制器),如图1所示。

       随着集成电路技术的发展,单片机的功能也越来越强大,部分单片机还集成有显示驱动、脉宽调制、D/A与A/D转换等电路。按照单片机内部CPU能够处理的二进制数据位数(即在一次运算中参与运算的数据长度,又称单片机的“字长”),单片机已从上世纪80年代初的4位发展到了最新的64位。位数越高,意味着单片机内部电路越复杂,能够开发的功能越多,性能越好,例如在物联网中广泛采用的STM32F103x8或sTM32F103XB系列单片机(闪存容量分别头64kB和128kB )均是基于ARM内核的32位中等容量增强型单片机,其功能如图2所示。


        与普通芯片一样,单片机内部许多电路只有与外围电路相连接,才能完成相应功能,如何实玛这种连接呢?在制造芯片时,先用光刻机将芯片内部电路“刻”在-块面积很小的晶圆上,然后用金属细线将相关端口与引脚相连,从而建立起芯片内外相连的通道,如图3所示。


        由此可见,引脚是芯片内外电路连接的“桥梁”,其数量取决于芯片内部的电路结构与功能,下面仍以图2所示单片机为例进行说明。若要实现图2所示功能,则须在芯片内部集成有对应的电路,按照这些电路的作用分类,可分为核心电路、功能电路与通信电路三大类,其具体名称、功能与端口特点见表1。


        核心电路是单片机正常工作的必备电路,好比修建房屋时的基础工程,具体包括ARM内核、存储器、时钟、复位、电源管理等电路,共需13个引脚;功能电路的主要作用是定时、计数及数据的输入、输出传输控制,好比修建房屋时的主体工程,具体包括低功耗控制ADC、GPIO、TIME等电路,共需119个引脚(仅GPIO电路就需80个引脚);通讯电路是单片机与外部芯片或模块之间的数据交换电路,好比修建房屋时的水电工程,具体包括PC、USART、SPI等电路,共需33个引脚。
         将上述各部分电路所需引脚数相加,得到该系列单片机引脚数为170。如采用四边伸出引脚的封装方式,每边约有43个引脚,若按一个引脚宽为0.5mm(含引脚间距)计算,则该芯片的长宽尺寸约为22mmx22mm,与当今的微型化芯片相比,其外形尺寸明显偏大。同时,芯片的引脚越多,其印制线路(PCB)也就越复杂,设计、焊接、调试和检测的难度也就越大,这必然会影响芯片的推广与市场占用率。若要让单片机微型化,同时降低其开发使用难度,最有效的办法是尽可能减少引脚数量,但减少引脚数量会直接影响单片机的功能,如何解决这一矛盾呢?
         方法只有两个:一是功能弃用,二是引脚功能复用。前者是指设计人员根据单片机的应用环境及引脚功能的重要程度,舍弃一些不常用的功能接口,从而减少引脚数量,例如在采用48脚封装(LQFP48)的STM32F103C系列单片机中,GPIO电路只保留了PA0~PA15、PB0 ~PB15、PC13 ~PC15、PD0、PD1共37个引脚(其他GPIO端口没.有伸出引脚),能满足大多数应用环境下的I/O口的数量需求,如图4所示。


          如果仅采用功能弃用法,芯片引脚的减少量仍有限,因为单片机的许多功能无法弃用,其相关引脚也必须保留,如电源、时钟、复位、通讯等电路。这时可采用引脚功能复用,即让同一个引脚具有多个功能,实际所用功能由程序决定,并可由程序实时自动切换。例如:STM32F103C系列单片机的③脚既是GPIO接口中的PC14端,又是与外部低频晶振相连的OSC32_ IN端,如果③脚上连接有32.768kHz晶振,并且在程序上将③脚功能设置为RTC(实时时钟),则此时③脚的功能为32.768kHz晶振输入端,I/O功能无效;如果③脚未接晶振,并且在程序上将③脚功能设置为GPI-O,则此时③脚的功能为I/O口PC14。
         另外,在单片机中,除引脚功能复用外,部分GPIO引脚的功能还可以重定义。所谓“重定义”是指在实际使用中,当某一引脚功能(含复用功能)与程序出现冲突时,可通过程序把这一功能接口切换到另一个不同的引脚(GPIO接口)上。例如:STM32F103C系列单片机的32脚具有CAN_TX功能,如果在实际使用中出现冲突,则可通过“重定义”将CAN_TX功能切换到⑤脚上。
         提示:普通集成块的引脚功能固定,而单片机的部分引脚功能与工作模式均可通过程序设定。为了区分这一特点,通常将单片机的引脚功能称作“引脚定义”。
         在STM32F103C系列单片机中,37个GPIO引脚功能复用,18个GPIO引脚功能可以重定义,用48个引脚承载了原本需100多个引脚才能承载的功能,使得芯片的外形尺寸大幅减小,实测该系列单片机的长宽高为7mmX7mmX1.4mm。