機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于C8051F021的定位和報警移動終端設(shè)計
基于C8051F021的定位和報警移動終端設(shè)計
 更新時間:2008-7-26 20:36:26  點(diǎn)擊數(shù):4
【字體: 字體顏色

摘要:c8051f021是美國cygnal公司生產(chǎn)的單片機(jī)。具有雙串口、低功耗、高速度等優(yōu)點(diǎn)。本文以gsm的數(shù)據(jù)業(yè)務(wù),設(shè)計一種具有報警和定位的移動終端,并介紹該終端的結(jié)構(gòu)框圖、工作原理以及i/o配置和初始化程序。

關(guān)鍵詞:c8051f021 gsm模塊 gps模塊 移動終端 定位報警

引言

gsm網(wǎng)是目前移動通信體制中最成熟、最完善、應(yīng)用最廣的一種系統(tǒng)。數(shù)據(jù)業(yè)務(wù)作為gsm網(wǎng)絡(luò)的一種基本業(yè)務(wù),已得到越來越多的系統(tǒng)運(yùn)營商和開發(fā)商的重視,基于這種業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來。以gsm網(wǎng)絡(luò)作為無線數(shù)據(jù)傳輸網(wǎng)絡(luò),可開發(fā)出多種前景極其樂觀的應(yīng)用,如無線遠(yuǎn)程檢測和控制、無線自動警報等。本文基于gsm的數(shù)據(jù)業(yè)務(wù)設(shè)計一種實(shí)時性比較強(qiáng)、數(shù)據(jù)率為9.6kbps的具有報警和定位的終端。

1 c8051f021簡述

c8051f021是集成在一塊芯片上的混合信號系統(tǒng)級單片機(jī),芯片上有32位數(shù)字i/o端口(引腳),與標(biāo)準(zhǔn)8051的端口(p0~3)相同。c8051f021在功能上有所增強(qiáng),每個i/o端口都可獨(dú)立地設(shè)置為推挽或開漏輸出和弱上拉,這為一些低功耗系統(tǒng)設(shè)計提供了節(jié)省電源的手段,而其最突出優(yōu)點(diǎn)就是改進(jìn)了可以控制片內(nèi)數(shù)字資源與外部i/o引腳相連的交叉開頭網(wǎng)絡(luò)。通過設(shè)置交叉開關(guān)控制寄存器,將人的數(shù)字資源輸入輸出配置為端口i/o引腳,這就允許用戶根據(jù)自己的特定應(yīng)用將通用i/o端口與所需數(shù)字資源相結(jié)合。c7051f021具有雙串口、多中斷源、低功耗、高速度、低電壓工作(3.3v)、高容量存儲器等特性,這些特性滿足本終端核心處理器的要求:低功耗、集成度高、可擴(kuò)展性好等。

2 終端結(jié)構(gòu)框圖

終端系統(tǒng)是由c8051f021單片機(jī)、gsm模塊、gpsoem接收模塊、鍵盤和液晶顯示器組成,如圖1所示。c8051f021單片機(jī)是用來實(shí)時采集終端外圍設(shè)備數(shù)據(jù)并進(jìn)行相應(yīng)的處理;gsm模塊即gsm無線調(diào)制解調(diào)器,完成和gsm網(wǎng)的接續(xù),負(fù)責(zé)通過串口接收來自單片機(jī)所采集到的數(shù)據(jù),并以無線電磁波的形式發(fā)送,或接收來自遠(yuǎn)程計算機(jī)發(fā)來的信息并傳遞給單片機(jī)處理;gpsoem的主要功能是接收衛(wèi)星發(fā)射導(dǎo)航電文的信號,并進(jìn)行碼測量或相位測量,然后根據(jù)導(dǎo)航電文提供的衛(wèi)星位置和時鐘差校正信息,計算gps接收機(jī)的當(dāng)前位置,在單片機(jī)的控制下傳輸定位數(shù)據(jù);鍵盤包括數(shù)字鍵和功能鍵,數(shù)字鍵用來設(shè)置呼叫遠(yuǎn)程主機(jī)的號碼,功能鍵具有相應(yīng)的報警功能如火警、匪警等和輔助功能;液晶顯示器用來顯示操作信息和提示信息。由于移動終端不需采集和存儲大量的數(shù)據(jù),僅采集gps-oem模塊的導(dǎo)航數(shù)據(jù)、報警類型數(shù)據(jù)和存儲呼叫遠(yuǎn)程主機(jī)的號碼數(shù)據(jù)和系統(tǒng)程序,所以c8051f021自帶的存儲器容量即64kb 128 flash和4kb 256b ram已滿足本終端的需要,故不需擴(kuò)展外部存儲器。

3 工作原理

在終端中,由gps-oem模塊完成位置定位。gsm模塊完成與gsm網(wǎng)通信接續(xù),用戶按鍵盤上的報警按鈕后,單片機(jī)通過串口實(shí)時讀取來自gps-oem發(fā)出的導(dǎo)航電文,從中提取經(jīng)度、緯度、速度、時間、航向定位數(shù)據(jù),并和相應(yīng)的報警類型數(shù)據(jù)重新組合形成新的數(shù)據(jù)格式。同時,以atd<號碼>指令進(jìn)行撥號在接,連接成功后通過所建立的數(shù)據(jù)鏈路實(shí)時傳輸數(shù)據(jù),監(jiān)控中心計算機(jī)接收數(shù)據(jù)并進(jìn)行經(jīng)緯度數(shù)據(jù)坐標(biāo)變換、誤差校正等處理,在電子在圖上實(shí)時顯示出當(dāng)前監(jiān)控的終端地理位置,并實(shí)時地跟蹤移動終端,并以聲光的形式提示工作人員,以便及時處理警情。移動終端也可隨時接來自監(jiān)控中心的控制命令,并依命令執(zhí)行相應(yīng)的動作。

4 終端i/o配置和初始化程序

由于本系統(tǒng)需要配置uart0、smbus、uart1、int0和int1(8位),存儲器的工作模式為片內(nèi)方式。p1端口作為4×4鍵盤的接口,p2、p3口作為通用的i/o端口,其中int0用作遠(yuǎn)程主機(jī)呼叫終端時的中斷處理,int1用作鍵盤中斷處理。故c8051f021單片機(jī)的emif和i/o端口配置如下。

①設(shè)emi的配置寄存器emi0cf=0x00,因為本應(yīng)用無擴(kuò)展存儲器和存儲器映像的i/o設(shè)備,即存儲器工作模式為片內(nèi)方式;同時將emifle(xbr2.5)設(shè)置為0,這樣p037、p0.6、p0.5的引腳將由交叉開關(guān)或端口鎖存器來決定,不被交叉開關(guān)忽略。

②按uart0en=1、uart1en=1、smb0en=1、int0e=1、int1e和emifle=0設(shè)置xbr0、xbr1和xbr2為xbr0=0x05、xbr1=0x14、xbr2=0x04。

③配置p1端口為數(shù)字輸入模式,即p1mdin=0xff。p1端口低4位為鍵盤輸出,高4位為輸入,p1mdout=0x0fh(p1.0~p1.3為推挽方式,p1.4~p1.7為漏極開路方式),p1|=0xf0。

④使能交叉開關(guān),即xbare=1,xbr2=0x44。因為emifle=0,交叉開關(guān)譯碼器將不跳過p0.7、p0.6、p0.5引腳,所以按優(yōu)先權(quán)交叉開關(guān)譯碼表進(jìn)行分配。uart0具有最高優(yōu)先權(quán),故p0.0分配給tx0、p0.1分配給rx0;smbus的sda、scl分別分配在p0.2、p0.3引腳;uart1的tx1、rx1分別分配在p0.4、p0.5引腳;int0分配在p0.6引腳;int1分配在p0.7引腳。

⑤設(shè)置uart0的tx0引腳(tx0,p0.0)、uart1的tx1引腳(tx1、p0.4)為推換輸出方式,即p0mdout=0x11。rx0、sda、scl、rx1、int0和int1是由交叉開關(guān)分配輸入的,因此與其端口配置寄存器的值無關(guān)。

⑥p2、p3作為一般i/o端口初始化輸入狀態(tài),即p2mdout=0x00、p2=0xff和p3mdout=0x00、p3=0xff。

引腳分配如表1所列。

表1 單片機(jī)引腳分配

引腳p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p1p2p3功能tx0rx0sdkscltx1rx1int0int1鍵盤通用通用

初始化程序如下:

void system_init(){

wdtcn=0xdeh; //禁止看門狗

wdtcn=0xadh;

emi0cf=0x00;

xbr0=0x05; //使能uart0、smbus

xbr1=0x14; //使能uart1,使能交叉開關(guān)和弱上拉,禁止外部寄存器低端口ale、wr、rd由交叉開關(guān)寄存器或地址鎖存器決定i/o端口配置

p0mdout=0x11; //tx0、tx1為推挽輸出,rx0、sda、scl、rx1、int0和int1是由交叉開關(guān)分配輸入的,因此與其端口配置寄存器的值無關(guān)

p2mdout.0=0x0; //把p2.0位初始化為輸入方式,用作lcd的命令/數(shù)據(jù)的辨別

p2.0=1;

//初始化為4×4鍵盤接口

p1mdin=0xffh; //配置p1端口為數(shù)字輸入模式

p1mdout=0x0fh; //配置p1.0~p1.3為推挽方式,p1.4~p1.7為漏極開路方式

p1|=0xf0; //p1端口低4位為輸出,高4位為輸入

p3mdout=0x00; //將p3口設(shè)置為輸入方式

p3=0xff;

ie=0x85; //使能int0、int1并按默認(rèn)的優(yōu)先權(quán)進(jìn)行切換

}

;uart0初始化函數(shù);定時器1為uart0波特率源

void uart0_init(){

scon0=0x50; //uart工作模式為1,8位數(shù)據(jù)位,使能rx

tmod=0x20; //定時器1工作模式2,8位自動重載

th1=-(sysclk/9600/16);//按波特率設(shè)置定時器1的重載值

tl1=th1; //設(shè)置定時器1的初始值

ckcon|=0x10; //使用系統(tǒng)時鐘sysclk作為時基

pcon|=0x80; //scod0=1

tr1=1; //啟動定時器1

}

;uart1初始化函數(shù);配置定時器4為串口波特率源

void uart1_init(void){

scon1=0x50; //scon1:模式1,8位uart,使能rx

t4con=0x30; //停止定時器;清除中斷標(biāo)示;使能uart波特率模式

rcap4=-(sysclk/9600/32);//按波特率設(shè)置定時器t4重載值

t4=rcap4; //給定時器4賦初值

t4con|=0x04; //(tr4=1)啟動定時器4

ti1=1; //清除hw_uart接收和發(fā)送中斷

}

;smbus初始化函數(shù)

void smbus_init(){

smb0cn=0x04h; //配置smbus在應(yīng)答周期發(fā)送確認(rèn)ack

smbocr=0x60; //時鐘速率大約10μs,根據(jù)smbocr公式計算

smb0cn|=0x40h; //使能smbus

}

6 總結(jié)

該該端具有功耗低、集成度高、數(shù)據(jù)處理速度快以及數(shù)據(jù)通信實(shí)時性強(qiáng)等特點(diǎn),可廣泛應(yīng)用于個人、出租車和長途車輛的定位和報警。由于其利用gsm網(wǎng)的電路型數(shù)據(jù)業(yè)務(wù)進(jìn)行無線數(shù)據(jù)通信,其通信費(fèi)用相對比較高。

  • 上一篇: C8051F040在基于CAN總線的分布式測控系統(tǒng)中的應(yīng)用
  • 下一篇: C8051F的超大容量Flash存儲器擴(kuò)展
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1