ATMEGA168单片机
单片机又叫微控制器,其和前面提到的两种CPU/SoC有很大区别,后两者属于不同场景的高性能芯片。其中OMAP4430的应用场景和单片机可能重合度高,但两者性能差别很大。所谓单片机就是指把所有东西都放到芯片里(包括内存等),整个电脑就只有一个芯片。通常单片机的性能差,但其价格低廉,ATMEGA168的价格不到1美金。单片机通常被用作微波炉、洗衣机的”CPU”的。从上面两张图片可以看出,该单片机的封装方式和前面两种CPU/SoC不太相同,并且其仅有28个管脚,管脚少的一部分原因是因为该单片机不需要很多管脚连接内存和很复杂的总线。
管脚信号和内部结构
ATMEGA168用于取代复杂的地址总线、数据总线跟外部进行通信的是数字IO接口,其中PD有8个管脚、PB有8个管脚,PC有7个。这种接口的每个管脚可被软件配置成输入/输出管脚。PC的其中6个管脚更是可被直接配置成模拟信号的输入/输出管脚,比如这种模拟信号管脚可以接入温度传感器,这种传感器的输出直接就是变化的电压值,这个值会被特定函数计算出对应的温度值。ATMEGA168的其他管脚包括地线(GND)、用于配置模拟电路的AVCC/AREF、电源输入(VCC)。
ATMEGA168的内部结构也是高度SoC的,比如其包括如下的存储部件:
1) 16KB的Flash存储器,存不常改变的非易失数据,比如程序指令;
2) 1KB的EEPROM存储器,存软件层可修改的非易失数据,比如时间显示是24还是12小时制;
3) 1KB的SRAM存储器,存易失数据,用作类似内存的功能;
ATMEGA168中的CPU采用AVR指令集,其包含131条指令,指令字长为16位。这个CPU本身是8位CPU(机器字长为8位),其中的寄存器是8位的。AVR指令集包含特殊的指令用于处理超过机器字长位数的数据,比如为了能用8位寄存器做16位加法,指令集中提供了“带进位加”指令,其可以执行“A + B + 之前的其他加法运算后的进位”这样的奇怪操作,从而可以用更多指令实现更多位数的计算。
ATMEGA168内部还包含时钟部件以及一些接口,比如串口链路、PWM链路、I2C链路等等。