![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 1029342
- 性别
- 男
|
![](http://images.eccn.com/silabs/silicon_chip_980x60_202203.jpg)
软件设计
软件的编写工作主要有两个部分:AD转换部分和GPRS MODEM部分。
AD转换部分:模拟部分使用的A/D芯片为标准SPI接口。SPI接口操作比较简单,在系统中我们使用IO口模拟SPI总线,按照各芯片规定的操作时序编写相应的IO口操作程序即可。MAX1162的读写时序见图7。
从时序图上可以看出,一个AD转换周期从CS信号下降沿开始,并在6个时钟节拍后ADC开始采集数据。SCLK信号驱动着转换过程并在第8个时钟节拍下降沿开始把转换结果放到DOUT数据线上(高位数据在前),整个转换周期需要24个时钟节拍,在读取转换结果最低位后,CS被强制拉为高电平,自动复位内部寄存器,并使MAX1162进入掉电模式。具体程序的编写可参考MAX1162的用户手册。
![](http://www.elecfans.com/uploads/allimg/120601/10121J4b-7.jpg)
图7 MAX1162读写时序
GPRS MODEM部分:为了解决终端设备(Terminal Equipment,TE)或数据终端设备(DataTerminal Equipment,DTE)与终端适配器(Terminal Adapter,TA)或数据电路终端设备(DataCircuit TerminalEquipment,DCE)之间通信的问题,著名通信设备生产商Hayes为此制定了一套指令,现在已成为事实上的标准并被所有调制解调器制造商采用。这就是常说的“AT指令”。AT指令几乎都是以AT开始,以《CR》《LF》结尾的特定的字符串,AT后跟的字母和数字表明AT指令的具体功能。指令集分成标准AT指令集(StandardV.25ATCommands),AT增强指令集(ATCommandsforEnhancedFunctions),传真指令集(ATCommandsforFAX)等多种。各个不同的MODEM生产厂商对于特殊的功能集进行了相应的增加。
我们使用的CellonCMS91模块用于发送短消息的主要AT指令见表2。
表2 常用的短消息AT指令
![](http://www.elecfans.com/uploads/allimg/120601/10121G133-8.jpg)
在本系统中,CMS91模块与LPC2136的UART1相联。LPC2136通过UART1以字符的形式将AT指令发给CMS91模块。在底层驱动中我们要完成的任务就是实现通过LPC2136的UART1向GPRS MODEM发送字符,其中最基本的函数是实现WRITE MODEM函数。
uint8 ModemWrite(char *Data, uint16 NByte)
{
uint8 err,i;
while(NByte》0)
{
OSSemPend(Uart1Send,0,&err);
for(i=0;i《8;i++)
{
U1THR=*Data++;
NByte--;
if(NByte==0)
{
break;
}
}
}
return ModemState;
}
结束语
系统具备了移动网内GPRS终端间互联功能和INTERNET接入功能,此外,在结构设计上,充分考虑了样机系统的开放性、可扩展性、易升级性等特点,整个系统具有很高的性价比。实践证明了该设计的可行性,但在系统的复位电路、外部时钟电路和电源等几个部分,本文只提供了一种最简单的方案。在实际应用中,对于较为复杂的现场环境可以相应添加看门狗复位电路和独立电源设计等复杂电路。 |
|