📄 gsm_430.c
字号:
/* 主程序修改说明记录
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2005年6月20日:
程序文件说明:
根据新制作的PCB图(GPS-M22:V2.4)版本的原理图,此程序为对应的系统文件
程序版本号:V2.32
程序功能说明:
1,增加外部的SRAM,用于接收外接部件的大量数据的传输(增加W24L011AJ(128K),实际使用64K),锁存器74HC573。
2,串口的分配: 串口0 M22
串口1 外接部件(调试串口)
串口2 GPS
串口3 车载电话
串口4 显示终端
3,主要实现功能:
(1),与行使记录仪之间的交互通讯
(2),
(3),
(4),
(5),
详细说明与行使记录仪之间的通讯流程:
主控向记录仪发送的数据有: 1,每一秒种发送8个字节的经,纬度,(用于记录仪存储和运算)(记录仪不用给出ECHO)
2,每隔1个小时发送一个查询当前记录仪时间,如果判断记录仪的时间和GPS的时间误差超过1秒,此时记录仪显示车辆速度为0,则发送矫正时间参数)
记录仪需要给出ECHO
3,主控接收到中心设置超速的限制值的参数设置(转发给记录仪)(记录仪需要给出ECHO)
4,主控接收到中心设置间隔距离的限制值的参数设置(转发给记录仪)(记录仪需要给出ECHO)
5,主控接收到中心设置疲劳驾驶的时间限制值的参数设置(转发给记录仪)(记录仪需要给出ECHO)
记录仪表向主控发送的数据有:1,记录仪接收到主控的查询当前时间命令,则返回当前记录仪的时间和当前速度的值
2,如果车辆速度超过设置的报警警戒值,则记录仪上发超速报警的信息,每间隔2秒发送一次,直至主控收到后返回响应,则停止发送超速报警信息
如果记录仪在超速的状态下,判断不处于超速,则主动发送停止超速的的信息,直至主控收到后返回响应
3,如果属于疲劳驾驶的状态下,记录仪应该向主控发送一个信息
4,车辆行使状态下,根据数据上报的类型(按时间上报数据点,按距离上报数据点...)如果属于按距离上报数据点,则如果记录仪表每判断到一个间隔
距离,则需要向主控发送一个信息
主控查询大量记录仪数据的通讯形式:中心下发一个查询记录仪大量数据的下行命令,主控转发给记录仪,记录仪则分批读取数据发送给主控
主控先负责接收数据,每接收一包数据,先判断是否属于部分数据包,如果是,则将有效数据提取出来,依次存储在外部的扩展SRAM里。然后给出一个
接收到此数据包的响应,然后等待接收记录仪的下一个数据包。直至接收到记录仪发送过来的此数据全部转发完成的信息,则主控开始进行外部SRAM的数据
转发(TCP方式)]
所有的中心的查询命令和设置命令,主控均不做命令字的检验,,主控接收记录仪的所有命令的回应包括设置的响应,或者数据返回
2005年8月30日
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
/********************************************************\
系统程序结构的说明:
1,FLASH的分配
扇区0-----暂停使用
扇区1,2---作为存储目标号码,IP地址和端口号(双备份)
扇区3,4---作为电话号码的存储
扇区5,6---作为上传数据间隔,开关量等等的存储(双备份)
2,串口的分配
串口0 M22
串口1 外接部件(调试串口)
串口2 GPS
串口3 车载电话
串口4 显示终端
3, SRAM的分配
1,串行存储器的两个264byte的SRAM的分配buffer1,buffer2,
buffer1的分配:与原来的程序保持一致(不变),具体细节见相关地方
buffer2的使用用来存储读取的相关页的数据
2,外部64K的SRAM的分配
0-----60K 作为接收外部数据(以行使记录仪为例)大量数据的接收(在串口1的中断子程序中处理接收)
61K---64K 作为存储记录仪需要向显示终端发送数据的缓冲存储(暂时这么考虑)
3,MSP430F149的内部SRAM的分配
4,TCP数据的发送方式和类别
根据以前的TCP数据的方式发送方式,现在将发送的数据分位如下几类:
A, 存储在buffer1相关区域的上行数据(包括手柄,和显示终端需要上行的相关信息,和对一些下行命令的响应信息)
B, 存储在周期数据缓冲区gCircle_Buffer[]中有需要发送的数据(主要存储的是周期发送的报警信息和行车轨迹信息)
C, TCP在线状态下的握手信息数据的定时发送主要以发FF 0D数据
D, 发送外接部件的数据(以存储在外部的SRAM的数据区域)
5,显示终端和手柄终端的接收和发送缓冲区的说明
手柄和显示屏与主控系统通讯均是采用的模拟串口3,和4。属于半双工的形式,故在向终端发送数据的时候需要判断是否在接收数据。
接收手柄的数据缓冲:gHandle_Buffer[30]
向手柄的发送数据的缓冲:保持与原来的兼容,是在需要向手柄发送数据的时候才组织数据发送(以节省SRAM的空间)
接收显示屏数据缓冲:gDisp_Buffer_R[50]
向显示屏的发送数据的缓冲:gDisp_Buffer[256]
6,与外接部件的数据通讯的接收和发送缓冲说明(以记录仪为例)
接收外接部件的数据缓冲:外部SRAM(0---64K)
向外接部件发送的数据缓冲:
修改记录:
2005年8月23日:
ACC关闭后20分钟,TCP下线,将按30分钟的方式传送数据。1个小时关闭模块
ACC关闭后20分钟 ,如果ACC再次开启,则重新启动程序
行车轨迹只可以最少10分钟的SMS的补偿,报警信息可以允许GSM方式传送
手柄通讯方式的改变
重点监控制:中心下行监控命令,则改变工作状态为监控方式,则上传数据的不受ACC开和关闭的控制
并且,不管时间间隔多大,均采用TCP常连线的方式。重点监控的方式是数传方式的改变
但此状态方式并不存储在FLASH中,同时,即使ACC关闭,在开启的时候,也不允许重新
启动程序。直到重点监控结束。数传的方式改变。
2005年9月1日:
增加通过手柄接口设置参数的部分,APN,电话号码本
调试一些线路报警的算法
2005年9月5日:
线路偏离的算法正确验证
增加如果ACC开启状态下,持续12个小时,则会将MCU重新启动一次。以恢复设备状态
此功能是为了防止在实际接线中,施工时候直接将ACC接在常电上的一个自恢复保护措施
2005年9月6日:
完善线路偏离报警的算法(但线路数据通过中心并没完成设置)
通过手柄端口设置电话号码完成
通过手柄端口参数设置完善(增加了APN的设置,按距离上传的距离值设置,)
2005年9月8日:
通过手柄端口设置显示终端的短信预置完成
2005年9月14日:
根据要求修改上报数据的补偿方式(短消息)
1,被劫报警的上报方式的修改
2005年9月22日:实际跑车进行线路报警的完善
2005年10月9日:
1,针对电话方面的恢复处理
2,针对疲劳报警或者预警的误报处理
根据在现场实际应用中发现的情况,以后需要完善的几点:
A;因为手柄和显示终端是半双工通讯,并且均为模拟串口的方式,在需要将232的IC改换为3232的同时,
为了增加通讯的可靠性,则需要针对部分指令的响应处理.
2005年10月16日:
1,针对模拟串口的发送和接收时候,需要停止某些中断
2,增加对MSP430内部的两个信息存储器的利用。分别为128个字节,作为存储备份参数利用
信息存储器A,备份扇区1和扇区2的前128字节的数据
信息存储器B,备份扇区3和扇区4的前128字节的数据
如果开机检测扇区1和扇区2,均是校验核不正确的扇区数据,则需要将信息存储器A中的前128个字节读出,并重新计算校验核
存储在扇区1或者扇区2中。
同样道理,信息存储器B是对应的扇区3和扇区4
3,每次更新或者从新计算扇区1和2的时候需要及时的更新信息存储器A
每次更新或者重新计算扇区3和4的时候需要及时的更新信息存储器B:
暂时未完成测试
2005年10月17日:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -