当前位置:首页 > 通信技术 > 通信技术
[导读]本文介绍了一种利用MSP430捕获比较功能实现串行通信的方法,研究了实现该方法的硬件以及软件特点。介绍了MSP430F413与TI的通信接口器件MAX3221构成的与微机进行串行通信的超低功耗方案,并介绍了该方法在其中的具体应用。通过实验证明,该方法为没有硬件UART模块的MSP430系列单片机实现串行通信提供了一种有效的方法。并对有UART模块,但需要扩展串口的应用提供了新的思路。

1 引言:
MSP430系列单片机是美国TI公司于2000年推出的新一代超的低功耗16位单片机。由于它具有功能完善、超低功耗、开发简便、成本低廉等特点,目前已经在国内得到了广大工程技术人员的关注和应用。工程师们在进行机型选择时主要考虑该机型的性能和成本,因此在小型仪表以及普通应用中MSP430的11x系列、31x系列、41x系列受到了许多工程师的青睐。这些机型有一个共同的特点就是内部没有硬件UART模块。这就带来一个问题,这些单片机怎样实现串行通信呢?本文就针对这一问题进行研究,分析研究了MSP430中捕获比较功能的特点,以及利用捕获比较功能实现串行通信的方法。并以MSP430F413为例介绍了实现它与微机之间进行串行通信的软件代码和硬件电路。

1 捕获比较功能的介绍:
MSP430系列单片机中都集成了捕获比较的功能模块。捕获比较功能的引入主要是为了提高I/O端口处理事务的能力和速度。捕获比较并不是非常新的概念,使用过Intel 的16位单片机中如80196MC的读者就会发现,MSP430中的捕获比较功能和80196系列单片机中的EPA功能有一些相似之处。以下结合实现串行通信的需要,简要介绍有关捕获比较的有关概念。

捕获比较模块用于捕获应用事件的发生时间,或产生定时间隔。如果相应的中断允许,那么完成一个时间捕获或一次定时间隔,捕获/比较模块都将产生中断。每一个捕获比较模块都可以对应一组硬件引脚。图1是捕获比较模块的结构框图。

捕获功能可以捕捉选定输入引脚的状态的变化,它可以选择捕捉上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计数值将被复制到捕获比较寄存器CCR中,并会产生相应的中断。在串行通信中,正是利用捕获功能的特点来捕捉起始位的信息。


图1:捕获比较模块结构框图

比较功能是借助比较器不断地将CCR中的设定值与定时器中的计数值相比较,当二者相等时,就产生中断,并产生设定的输出。利用比较功能,可以获得精确的时间间隔,利用该特性可以构造一个精确的波特率发生器,为串行通信提供时间基准。

2 利用捕获比较实现串行通信的方法
本节具体介绍实现异步串行通信时,捕获和比较功能是如何工作的。

2.1 接收过程


图2:在串行通信接收过程中捕获比较功能时序分析示意图

在异步串行通信中,每个数据帧一般由1位起始位、8位数据位、1位奇偶校位、1位停止位组成。图2所示为一个数据帧前3位的时序。在接收这种格式的数据帧时,首先要确定起始位,用来进行帧同步。在MSP430中是利用捕获功能来捕捉起始位的下跳沿(详见附录程序代码)。如图2,在A点捕获到起始位,系统将此刻的定时器值(T0)存放入CCR中,并产生中断。对A点所产生中断的处理非常重要。在该中断处理程序中,将捕获功能转换为比较功能,并将1.5位的时间间隔(T1.5)加到CCR中,即CCR=T0+T1.5。这样当到达1.5位时间间隔时(B点),即定时器的值等于T0+T1.5。将会由此比较功能触发一次中断,这样就实现了1.5位时间间隔的精确定时。在该中断处理程序中,可以读取输入引脚的状态,从而接收到Bit1的信息,然后再利用比较功能产生1位时间间隔(T1)的定时。此后,当下一个T1时间到达时,比较功能又会触发一次中断(C点)。在这时的中断服务程序中可以读取Bit2的信息。如此重复8次,就可以完成一个字节数据的接收。

2.2 发送过程
相对于接收过程,发送过程比较简单。利用比较功能产生一个间隔为1位时间(T1)的时序,相当于一个波特率发生器。在每一次比较功能触发的中断服务程序中发送一位数据,如此循环执行,这样就可以完成一个数据帧的发送。异步串行通信的一个数据帧往往是10位或11位。对于这点可以利用MSP430是16位机的特点,将数据帧的所有位安排在一个待发送字中,然后移位发送,而不需要专门编程产生起始位和停止位。(详见附录中的程序代码及说明)

2.3 波特率的确定以及中断的安排
从以上的分析可以看出,串行通信的波特率主要是与1位时间间隔T1有关,T1可以通过以下公式确定:

  公式1

其中Tclk是指与该捕获比较模块相对应的定时器的基准频率,如使用ACLK作为时基则Tclk=32768;使用MCLK作为时基则Tclk=1M。式中的Baud就是期待的波特率值。MSP430每个捕获比较模块中的捕获和比较对应同一个中断地址,因此两者需要共享一段中断服务程序。这样就要求在中断服务程序中能区分触发中断的类别。主要是通过CCTL控制寄存器中的CAP位来区分[3]。另一方面接收和发送的也都需要在这段服务程序中处理,应该加以区分。(详见附录中的程序代码及说明)

3 超低功耗串行通信实例

3.1电路结构及其特点
本文中使用上述的原理和方法,在MSP430F413和MAX3221构成的电路中实现了与微机的串行通信,电路原理如图3。该电路不但完成了串行通信,还进一步实践了超低功耗的应用原理。MSP430单片机的一大特点就是超低功耗,它有多种功耗状态可以编程控制[4]。MAX3221也是具有低功耗特点的接口器件,通过EN、FORCEON、FORCEOFF引脚可以控制驱动器、接收器的工作状态,启动或禁止自动降低功耗功能,从而使其工作在不同的能耗状态,达到降低功耗的目的[2]。控制及其状态详见表1


图3 MSP430F413超低功耗串行通信电路原理图

3.2超低功耗的解决方案
选择了低功耗的器件,还要合理的控制才能达到最低的能耗[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再设定为准备接收信息的最低功耗状态。

利用上述方法可以在满足串行通信的同时达到非常低的功耗。

表1:MAX3221收发器工作控制及其工作状态对照表

工作及能耗状态FORCEONFORCEOFFEN接收器输入信号Rin驱动器状态接收器状态
完全待机状态最低功耗X00X关闭激活
X01X关闭关闭
正常工作状态人工调节能耗110X激活激活
111X激活关闭
器件自理状态自动调节能耗010有效自动激活激活
011有效自动激活关闭
010无效关闭激活
011无效关闭关闭

注:驱动器将MOS电平转换为RS232电平,接收器将RS232电平转换为MOS电平

4 结束语
应用上述的设计方法和电路,很好地实现了MSP430与微机之间的串行通信,并且达到了非常理想的功耗水平。实践证明该方法对于没有硬件UART的MSP430系列单片机进行串行通信非常有效,并给需要扩展串口的其他类型MSP430单片机提供了一种可行的方案。此外,文中的超低功耗电路设计方法对于功耗敏感的应用是一种很好的解决方案。

参考文献:
[1] Brian Merritt. Ultralow Power Thermostat ([R]). Texas, U.S.A. : Texas Instruments Incorporated, 2001.
[2] MAX3221 3-V TO 5.5-V single-channel RS-232 line driver/receiver (Manual). Texas, U.S.A. : Texas Instruments Incorporated, 2001.
[3] 胡大可. MSP430系列超低功耗16位单片机原理与应用,北京航空航天出版社,2001。
[4] 胡大可. MSP430系列FLASH型超低功耗16位单片机,北京航空航天出版社,2001。

附录:利用捕获比较实现异步串行通信的程序代码:
;------------------------------------------------------------------------------

说明:
硬件连接如图3,P1.0作为发送引脚,P1.1作为接收引脚,二者共用捕获比较模块0
Tbit1 是1位时间间隔数据(T1),Tbit_5是半位时间间隔数据。(由公式1得出)
RTbuff 是接收发送缓冲字单元,存放接收和发送的数据
Counter 是收发过程中使用的计数器
;------------------------------------------------------------------------------

发送子程序

MOV&TAR,&CCR0; 将当前定时器值存入CCR中(T0)
ADD#Tbit1,&CCR0; 将1位时间间隔加入CCR中(T0+T1)
RLARTbuff; 将带发送的字节数据左移一位,构造最低位为起始位
BIS#0200h, RTbuff; 将停止位数据放入待发送字的第10位
MOV#10,Counter; 初始化数据帧计数器为10
MOV#OUTMOD0+CCIE,&CCTL0; 标记发送状态,打开捕获比较中断,启动发送
RET ; 返回

;------------------------------------------------------------------------------
接收准备子程序

MOV#08,Counter; 初始化接收数据计数器为8(接收一个字节数据)
MOV#SCS+CCIS0+OUTMOD0+CM1+CAP+CCIE,&CCTL0;初始化捕获比较控制字,
  ; 设定为下降沿捕获模式,标记接收状态,打开中断,启动接收
RET ; 返回

;------------------------------------------------------------------------------

捕获比较模块0的中断服务程序
;------------------------------------------------------------------------------

 ADD#Tbit1,&CCR0; 将1位时间间隔加入CCR0中
 BIT#CCIS0,&CCTL0; 判断接收、发送状态
 JNZUART_RX; 是接收状态,转接收处理
UART_TXCMP#00h,Counter; 是发送状态,判断帧发送是否结束
JNETX_Next; 没有结束,转入发送
BIC#CCIE,&CCTL0; 帧发送结束,关闭中断
RETI ; 中断返回
TX_NextRRARTbuff; 待发送位移入进位位C
JCTX_One; 该位为1?跳转
BIS#OUTMOD2,&CCTL0; 该位为0,发送0
JMPTX_nxt2; 跳转继续处理
TX_OneBIC#OUTMOD2,&CCTL0; 该位为1,发送1
TX_nxt2DECCounter; 发送帧计数器减1
RETI ; 中断返回
;
UART_RXBIT#CAP,&CCTL0; 判断是否是捕获到起始位
JZRX_Bit; 接收的不是起始位,转入处理
RX_StartBIC#CAP,&CCTL0; 捕获到起始位,将状态转为比较模式
ADD#Tbit_5,&CCR0; 再增加半位时间间隔(T0+T1.5),以实现1.5 时间间隔
RETI ; 中断返回
RX_BitBIT#SCCI,&CCTL0; 将接收到的位存入进位位C
RRCRTbuff; 将接收到位,移入收发缓冲字
RX_TestDECCounter; 接收数据计数器减1
JNZRX_Next; 判断是否接收了所有数据位,没有跳转到后续处理
BIC#CCIE,&CCTL0; 接收到所有数据位,关闭捕获比较中断
RX_NextRETI ; 中断返回

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

通信技术

120595 篇文章

关注

发布文章

编辑精选

技术子站

关闭