ATmega16A低成本的GPS接收系統(tǒng)設(shè)計
K9F1208U0M的接口控制方法:K9F1208U0M在應(yīng)用時必須通過外部ATmega16A來控制其內(nèi)容的讀寫。K9F1208U0M的數(shù)據(jù)總線與ATmega16A的數(shù)據(jù)口PA口相連,用ATmega16A的地址高位引腳PB6作為K9F1208U0M的片選信號(CS);PB5接K9F1208U0M的命令數(shù)據(jù)選擇端(CME)/DATA),而PB4接K9F1208U0M的地址鎖存允許端(ALE)。
讀寫操作流程:進行寫操作時先要寫入命令字80H,通知K9F1208U0M要進行寫操作,然后順序?qū)懭肽康牡氐刂泛痛龑懭氲臄?shù)據(jù)。應(yīng)該注意的是,地址只需寫入一次,便可以連續(xù)寫入多個字節(jié)數(shù)據(jù)。地址指針的調(diào)整是由K9F1208U0M內(nèi)部邏輯控制的,不用外部干預(yù)。寫入操作是以頁為單位(1~528字節(jié))進行的,即每次連續(xù)寫入能超過528個字節(jié)。這是由K9F1208U0M的工作方式?jīng)Q定的:寫入的數(shù)據(jù)先保存至Flash內(nèi)部的頁寄存器(528字節(jié))中,然后再寫入存儲單元。數(shù)據(jù)寫完之后還要給K9F1208U0M發(fā)出1個寫操作指令10H,通知其將頁寄存器中的數(shù)據(jù)寫入存儲單元,隨后就應(yīng)該對狀態(tài)引腳進行查詢。如果該引腳為低,表明此次寫操作結(jié)束。最后的步驟是數(shù)據(jù)校驗,如果采用了ECC校驗?zāi)J?,則此步驟可以省略。
使用ATmega16A控制器完成Flash驅(qū)動函數(shù)主要包括:讀ID;塊擦除;寫入一頁數(shù)據(jù);壞塊檢測;讀取一頁數(shù)據(jù)。
另外,注意事項有:在以K9F1208U0M為數(shù)據(jù)存儲介質(zhì)的系統(tǒng)設(shè)計中,需要注意無效塊的問題。無效塊即包含一個和多個無效數(shù)據(jù)位的塊。由于結(jié)構(gòu)方面的原因,一塊(32頁)中有一個無效位也會導致整個塊無效。因此,系統(tǒng)必須在寫入數(shù)據(jù)時避開無效塊。出廠時,每片K9F12 08U0M的無效塊信息均保存在一個無效塊信息表中,可以根據(jù)該表中的原始無效塊信息識別無效塊的位置。在K9F1208U0M的使用過程中,應(yīng)隨時對無效塊情況進行檢查和更新,以保證無效塊表內(nèi)容的準確性。
3 微控器軟件程序設(shè)計
該ATmega16A軟件程序流程如圖8所示。
4 實驗結(jié)果
為檢驗該GPS接收系統(tǒng)的系統(tǒng)性能,選擇一空曠地域組織了若干次實驗,實驗內(nèi)容是固定地點接收衛(wèi)星信號。圖9是GPS接收系統(tǒng)實物圖和Flash數(shù)據(jù)讀取圖。
圖9中左邊是GPS接收系統(tǒng)的實物圖,右邊是通過該GPS接收系統(tǒng)采集回來的數(shù)據(jù),然后經(jīng)過Flash讀取而得到的信息。GPS衛(wèi)星接收系統(tǒng)采集到的坐標是世界大地坐標系(WGS-84)坐標。輸出的數(shù)據(jù)格式為:“時間+維度+經(jīng)度+星數(shù)+高度”,接收回來的數(shù)據(jù)充分顯示系統(tǒng)穩(wěn)定度很高。
結(jié)語
本文設(shè)計了一種基于ATmega16A的GPS接收系統(tǒng)。該系統(tǒng)具有數(shù)據(jù)存儲、無線傳輸、定位精度高等特點。實驗數(shù)據(jù)顯示系統(tǒng)穩(wěn)定度很高,易于推廣普及,可用于普通民用地理定位領(lǐng)域,具有較高的實用價值。
評論