1.2 性能优异的STM8S
1.2.1 片内功能概述
STM8S系列单片机是基于8位框架结构的微控制器,全系列配备了高性能的STM8内核,外设采用模块化的设计方式,具有丰富的片内资源配置,其内部结构如图1-2所示。
从图1-2可以看出,STM8S系列单片机的核心部分是STM8内核,与其他模块一同连接于片内的地址和数据总线上。同样连接在地址和数据总线上的模块还包括单线调试(Debug/SWIM)模块、I2C模块、SPI模块、UART1模块、UART3模块、beCAN模块、模数转换(ADC2)模块、蜂鸣器(Beeper)模块、看门狗模块、多功能的定时器模块等。另外,FLASH、EEPROM及RAM存储器也通过这条总线进行通信。
STM8S单片机的时钟配置也比较灵活,可以使用晶体振荡器或外部时钟信号作为系统时钟源,也可以使用片内的两个RC振荡器(16MHz和128kHz)作为系统时钟。时钟信号在时钟控制单元的控制下,为外设和CPU提供时钟信号。此外,STM8S片内有复位模块,支持外部复位、欠压复位和上电复位。

图1-2 STM8S单片机内部结构
1.STM8内核
STM8S全系列标配统一的STM8内核,CPU基于哈佛结构,配有3级指令流水线,采用32位宽程序存储器总线,对于大多数指令可进行单周期取指;CPU内部集成有6个内部寄存器,可以高效地进行数据运算和处理;2个16位寻址寄存器:X寄存器和Y寄存器,允许带有偏移的和不带偏移的变址寻址模式和基于读—修改—写方式的数据操作;8位累加器,使用24位程序指针,具备16M字节的线性寻址能力;16位堆栈指针,可以访问64K字节深度堆栈;8位状态寄存器,可根据上条指令的结果产生7个状态标志位;CPU在24MHz全速运行时,可以达到20MIPS的处理速度。
在这里有必要对STM8内核的哈佛(Harvard)结构做一些说明。51型单片机是基于冯·诺依曼(Von-Neumann)结构设计的,这种内核结构的单片机典型特点是程序存储器和数据存储器都挂接在同一条8位的数据总线上,CPU也通过该总线对程序和数据存储器进行访问,在同一时间里,CPU要么从程序存储器中存取指令,要么从数据存储器中存取数据,在复杂的数据处理过程中,难免出现总线竞争的情况,影响单片机的工作效率。基于冯·诺依曼结构的单片机内部结构如图1-3所示。

图1-3 冯·诺依曼结构
而STM8S系列单片机采用的是哈佛结构。在这种结构的特点是采用分开的指令和数据总线,CPU对数据存储器的访问是通过8位的数据总线来完成的,而对程序存储器的访问则是通过独立的32位指令总线来完成的。哈佛结构的优点是指令和数据空间完全分开,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐率。采用哈佛结构的单片机内部结构如图1-4所示。

图1-4 哈佛结构
STM8S单片机在处理指令时需要经过3个步骤,即:取指、译码和执行。如果每一个步骤都消耗一个时钟周期,一条指令的执行过程将使用3个时钟周期来完成。STM8S单片机采用的是3级指令流水线操作,即在一条指令执行的同时,对下一条指令进行译码,并且对第三条指令进行预读,这样使一条指令的执行可以在一个时钟周期内完成,大大提高了数据的处理速度。3级指令流水线的原理如图1-5所示。

图1-5 3级指令流水线
2.存储器
STM8S208RB单片机内部集成了多种不同类型的存储器:128K字节的FLASH程序存储器,经过10K次擦写后在55℃环境下数据可保存20年;2K字节真正的数据EEPROM,可耐30万次擦写;6K字节数据RAM。
3.时钟源
STM8S208RB单片机具有灵活的时钟控制,可以使用4个不同类型的时钟作为主时钟源,即:低功率晶体振荡器、外部时钟、内部集成16MHz RC振荡器、内部低功耗128kHz RC振荡器。且片内配有监控时钟的时钟安全保障系统,当主时钟源失效时,可以自动切换到备用时钟源上。
4.复位和电源管理
STM8S208RB单片机在2.95~5.5V工作电压下均能正常工作,具有等待、活跃停机、停机3种低功耗模式,每一个外设的时钟可单独关闭,具有低功耗上电和掉电复位电路。
5.中断管理
STM8S系列单片机具有灵活的优先级控制,支持4个软件可编程的嵌套等级,最多有32个中断向量,其入口地址由硬件固定。
6.定时器
STM8S208RB单片机片内有两个16位通用定时器,具有2+3个CAPCOM通道,能实现比较、捕捉和PWM控制功能(IC、OC或PWM);1个16位高级控制定时器,具有4个CAPCOM通道,3个互补输出,死区控制和灵活的同步控制功能;1个带有8位预分频器的8位基本定时器。此外,STM8S208RBT6单片机还配备了片内自动唤醒定时器、窗口看门狗定时器、独立看门狗定时器。灵活运用这些定时器,可以实现强大的控制功能。
7.通信接口
STM8S208RB单片机片内集成了丰富的通信接口:1Mbps CAN 2.0B高速接口、带有同步时钟输出的UART-LIN主模式通信接口、兼容LIN2.1协议的UART通信接口(主/从模式和自动重新同步)、最高通信速率为10Mbps的SPI接口和最高到400Kbps的I2C接口。
8.模数转换器
STM8S208RB单片机片内集成有10位精度的ADC模块,具有多达16路输入通道,可实现高精度的模数转换。
9.I/O端口
STM8S208RB单片机采用LQFP64封装,具有64个引脚,有52个I/O接口,其中包括16个高吸收电流输出的I/O接口。I/O驱动能力非常强大,标准输出模式下灌电流和拉电流均可达20mA。
10.开发支持
STM8S208RB系列单片机配备有单线接口模块(SWIM)和调试模块(DM),可以方便地与开发环境相连,进行在线编程和非侵入式调试。
STM8S208RB单片机片内资源配置详见表1-5。
表1-5 STM8S208RBT6单片机片内资源配置

1.2.2 引脚功能
STM8S208RB单片机采用LQFP64封装,具有64个物理引脚,其排列顺序如图1-6所示。STM8S208RBT6单片机共有A、B、C、D、E、F、G、I共8组I/O口,其中大部分是功能复用接口;NRST引脚是外部复位引脚,在该引脚上施加一个足够时间的低电平会使单片机复位;VDDIO、VSSIO分别是I/O口的电源和地,VDD和VSS分别是数字电源和地,VDDA和VSSA分别是模拟电源和地;VCAP是内部稳压器滤波电容端;VREF+和VREF-是A/D转换器参考电压正负输入端。STM8S208RB单片机引脚功能详见表1-6,更多的引脚功能描述可参考本书附录。

图1-6 STM8S208RB单片机引脚
表1-6 STM8S208RB单片机引脚功能

