?? 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 + -