AVR单片机的串口转FSK的通信模块设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

AVR单片机的串口转FSK的通信模块设计

来源:中国一卡通网  作者:中国一卡通收录  发布时间:2012-03-05 10:27:51  字体:[ ]

关键字:单片机  通信模块  通信协议  

摘   要:以AVR单片机ATmega48芯片及CMX865调制/解调芯片为硬件架构规范了对外串口通信协议,采用模拟口线的方式对CMX865寄存器进行操作,设计了一种串口转FSK的通信模块,实现数据传输方式的转换。硬件电路以ATmega48微处理器为核心,并利用C/BUS总线控制CMX865芯片,实现FSK/DTMF收、发功能;外围电路由振铃检测、FSK数据收发接口电路组成。模块软件设计主要包括串口通信和FSK通信两部分程序,串口通信程序实现串口通信命令的组包发送、收包解析/处理功能;FSK通信程序实现利用中断方式发送、接收FSK数据功能。


  4.2 对外串口通信协议

  模块采用标准串口通信,波特率为19 200 bps,10位异步方式。定义串口通信数据包格式为:0x1E+命令+校验和反码(对命令的校验和反码),其中部分命令以变长方式发送。串口通信主要命令有:模块初始化、链路保持、DTMF接收/发送、FSK接收/发送、振铃、挂机等,命令具体格式和描述此处不加详述。模块初始化上电后由通信模块自动发起,直到正确接收到终端应答初始化命令后,通信模块才建链成功。信息终端初始化应答命令主要提供FSK通信模块参数配置信息。上电后如果FSK模块未收到终端初始化应答信息,则周期性地(每2 s)发送一次初始化建链命令,直到成功为止;模块FSK通信过程中周期性地向终端发送链路保持命令,如果未收到终端应答信息,则断开FSK链接重新开始模块初始化。

  4.3 串口通信实现

  AVR单片机串口通信往往采用SPI通信方式,通信模块串口通信采用UART0控制/状态寄存器和数据寄存器实现。串口通信子程序主要由串口发送/接收中断子程序、串口接收命令解析子程序和串口组包发送子程序3部分组成。其中串口中断接收程序为: 


  具体执行串口数据发送时,需要提供发送数据长度、发送起始地址、置UCSROB寄存器值(UCSR0B |=0x28)。串口接收命令解析子程序按照对外串口通信协议解析串口命令,并根据命令描述调用子程序代码执行相应子功能操作。为了通信容错处理,通信模块需对接收串口数据进行校验,如果解析的串口命令格式正确,则向终端发送肯定应答;否则发送否定应答,等待终端重传命令数据。串口组包发送子程序对接收的FSK数据以及线路状态等信息数据,按照串口通信协议组包发送给信息终端。 

  4.4 FSK通信实现

  FSK通信子程序主要由CMX865芯片寄存器操作、FSK收/发、DTMF收/发以及线路状态检测等子程序组成。ATmega48芯片采用模拟口线的方式对CMX865寄存器进行读/写操作,其中对CMX865芯片寄存器读操作程序为: 


  FSK收/发、DTMF收/发子程序均以CMX865寄存器读/写操作函数为基础,通过设置CMX865寄存器的值,确定其工作模式。FSK数据发送、接收都可以通过CMX865芯片的IRQ中断口线引起ATmega48芯片中断,因此FSK数据收/发都通过中断实现。芯片程序采用10 ms定时器循环检测线路状态。

  结语

  本文利用ATmega48芯片和CMX865芯片为硬件架构设计了串口转FSK通信模块。由于ATmega48芯片与ATmega88芯片除了Flash、EEPROM、SR AM容量差异外,性能完全相同。通信模块可以不更改硬件电路,仅配置相应AVR芯片,对软件稍作调整,能够满足通信业务对通信数据量增加的需求,节约模块二次开发的成本。目前本通信模块已在一款新型的电子交易终端上使用,并与中兴、精伦等电子交易平台进行信息交互,运行效果良好。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖