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