1 引言:
MSP430系列单片机是美国TI公司于2000年推出的新一代超的低功耗16位单片机。由于它具有功能完善、超低功耗、开发简便、成本低廉等特点,目前已经在国内得到了广大工程技术人员的关注和应用。工程师们在进行机型选择时主要考虑该机型的性能和成本,因此在小型仪表以及普通应用中MSP430的11x系列、31x系列、41x系列受到了许多工程师的青睐。这些机型有一个共同的特点就是内部没有硬件UART模块。这就带来一个问题,这些单片机怎样实现串行通信呢?本文就针对这一问题进行研究,分析研究了MSP430中捕获比较功能的特点,以及利用捕获比较功能实现串行通信的方法。并以MSP430F413为例介绍了实现它与微机之间进行串行通信的软件代码和硬件电路。
1 捕获比较功能的介绍:
MSP430系列单片机中都集成了捕获比较的功能模块。捕获比较功能的引入主要是为了提高I/O端口处理事务的能力和速度。捕获比较并不是非常新的概念,使用过Intel 的16位单片机中如80196MC的读者就会发现,MSP430中的捕获比较功能和80196系列单片机中的EPA功能有一些相似之处。以下结合实现串行通信的需要,简要介绍有关捕获比较的有关概念。
捕获比较模块用于捕获应用事件的发生时间,或产生定时间隔。如果相应的中断允许,那么完成一个时间捕获或一次定时间隔,捕获/比较模块都将产生中断。每一个捕获比较模块都可以对应一组硬件引脚。图1是捕获比较模块的结构框图。
图1:捕获比较模块结构框图
捕获功能可以捕捉选定输入引脚的状态的变化,它可以选择捕捉上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计数值将被复制到捕获比较寄存器CCR中,并会产生相应的中断。在串行通信中,正是利用捕获功能的特点来捕捉起始位的信息。
比较功能是借助比较器不断地将CCR中的设定值与定时器中的计数值相比较,当二者相等时,就产生中断,并产生设定的输出。利用比较功能,可以获得精确的时间间隔,利用该特性可以构造一个精确的波特率发生器,为串行通信提供时间基准。
选择了低功耗的器件,还要合理的控制才能达到最低的能耗[1]。对于本应用,MSP430处于从机工作状态。针对这种应用以下方案可以有效地降低能耗:初始化程序结束后,设定MSP430F413工作在功耗模式4等待P1.2引脚的中断。这时CPU将关闭,其能耗最低(0.1μA)。另一方面,初始控制MAX3221进入自动调节能耗状态。如果微机不发送信号,即Rin输入无效,驱动器和接收器都将关闭,进入很低功耗的待机状态(1μA)。
当微机发送信号时,即Rin输入有效,接收器会自动打开,并产生有效的INVALID信号。该信号将触发P1.2引脚的中断。在中断处理程序中将MSP430F413的功耗模式设定为模式3(功耗电流0.7μA),这时利用频率为32768的ACLK时钟工作就可以完成低速的串行通信任务。当接收、处理完微机的数据后需要将结果返回给微机。这时可以打开MAX3221的驱动器,关闭接收器完成此工作。当发送完毕后可以将MSP430和MAX3221再设定为准备接收信息的最低功耗状态。
利用上述方法可以在满足串行通信的同时达到非常低的功耗。
4 结束语
应用上述的设计方法和电路,很好地实现了MSP430与微机之间的串行通信,并且达到了非常理想的功耗水平。实践证明该方法对于没有硬件UART的MSP430系列单片机进行串行通信非常有效,并给需要扩展串口的其他类型MSP430单片机提供了一种可行的方案。此外,文中的超低功耗电路设计方法对于功耗敏感的应用是一种很好的解决方案。
一周热门 更多>