单片机单元
本系统中单片机采用ATMEL公司的AVR系列单片机AT90S2313。其程序和数据分别存储,总线独立。为了提高目标代码的性能优化功耗设计,AVR单片机采用精简指令RISC结构和快速寄存器文件。程序执行单级流水线,一改以往传统累加器结构代码效率低、运算能力低的缺点。此外,AT90S2313无堆栈,可将堆栈置于数据存储区,将栈底指针设在SRAM区最高地址处。
计数接口及电压检测单元
计数接口对脉冲源进行计数,其电路原理如图2所示,在齿轮式天燃气表上安装干簧管,平时干簧管张开,2313的外部中断管脚状态为高电平,当齿轮旋转一周时,磁钢使干簧管吸合,外部中断管脚变低,这样产生一个低电平中断,单片机开始累加一次脉冲。当磁钢使干簧管吸合时,如果用户不继续使用燃气,那么磁钢将一直吸合干簧管,外部中断管脚一直为低电平,这样将使计数单元重复计数。为了使干簧管吸合时,外部中断管脚不一直为低电平,应用微分电路,即使干簧管一直吸合时,其输出为一个低电平脉冲。
由于系统的下位机工作于燃气现场,它的电源不能采用市电整流获得。为了安全,电源采用普通5号电池,这样就对系统的功耗要求很严格,平时应使单片机处于睡眠状态,发生中断事件后,唤醒单片机。同时由于电池电压下降到一定程度单片机就无法正常工作,因此,还必须对电源进行不断监测。利用AVR单片机中的比较单元,对电源电压进行监测。电路原理如图3所示。AT90S2313内部带有电压比较单元,在监测电压时,使管脚PB2输出为5V高电平电源电压,管脚PB1被1.8V的稳压管钳位在1.8V。用管脚PB0监测PB2的分压电压。电源正常时,PB1的电压低于PB0的电压,当Vcc下降时,PB0的电位随之下降,一旦PB1的电压高于PB0的电压时,产生电压比较中断标志位,通过电压比较中断,控制蜂鸣器报警。
调制解调单元
单片Modem是该系统的核心部分,其主要功能是与上位机进行呼叫连接和数据交换。被叫部分电路原理图如图4所示。该部分应用了OKI公司的单片FSK调制解调器MSM7512B,它遵守ITU_T V.23协议,由单电源供电,具有低功耗掉电模式,模拟驱动能力可以直接驱动600 通信电路。
图5是按照V.23协议,在公用电话网中建立连接具体过程的时序描述。
7512B有三种工作模式。一种为1200bps半双工模式,发送和接收的速率均为1200bps,数字0(SPACE信号)对应着2100Hz,数字1(MARK信号)对应1300Hz。第二种为1200bps收/75bps发模式,发送的速率为75bps,数字0(SPACE信号)对应着450Hz,数字1(MARK信号)对应390Hz;接收的速率为1200bps,数字0(SPACE信号)对应着2100Hz,数字1(MARK信号)对应1300Hz。另外,7512B还可工作于掉电方式,此时它的功耗只有0.1W。本系统中,7512B是作为被叫Modem来建立连接的。由呼叫时序可知,上位机必须检测到7512B发送的2100Hz应答音,为此要求7512B工作在1200bps半双工模式。在该模式中,7512B无法检测到低波段的MARK,也无法接收标准Modem发送的数据,只能工作在单向发送状态。图6给出了2313接收到振铃信号时的作为被叫Modem应答中断服务程序框图。
结语
自该系统应用于机械燃气表中以来,性能稳定,运行状况良好。利用单片机控制Modem芯片进行远程数据传输,在数据量不大、传输速率要求不高的场合,应用十分方便。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |