關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于大容量IC卡AT45D041的出租車數(shù)據(jù)采集系統(tǒng)

基于大容量IC卡AT45D041的出租車數(shù)據(jù)采集系統(tǒng)

作者:解放軍廣州通信學(xué)院 黃再銀 時間:2004-11-02 來源:電子產(chǎn)品世界 收藏

2004年6月B版

摘  要:本文介紹了基于大容量IC卡AT45D041的出租車數(shù)據(jù)采集系統(tǒng)的設(shè)計方法,討論了IC卡AT45D041的主要特點及其使用方法;介紹了PIC單片機(jī)和PC機(jī)串行通信的硬件、軟件方法。

關(guān)鍵詞:出租車;IC卡;AT45D041;單片機(jī);串行通信

引言

  隨著出租車行業(yè)的發(fā)展,對出租車管理的要求也越來越高。通常,出租車管理部門需要經(jīng)常采集出租車計費器中存儲的各種數(shù)據(jù),這些數(shù)據(jù)主要包括累積數(shù)據(jù)(如總行駛里程、總收費里程、總收費時間、總車資等)和乘客記錄數(shù)據(jù)(如起止時間、收費里程、收費時間、郊區(qū)或夜間收費里程、1公里單價、車資等)。一般來說,出租車的計費器可存儲300次以上的乘客記錄,每條乘客記錄約占50字節(jié),這樣300次乘客記錄約占15K字節(jié)。大容量IC卡AT45D041的容量為4Mbit(約500K字節(jié)),利用該IC卡來采集出租車計費器中存儲的數(shù)據(jù),不僅攜帶方便,而且可一次采集多達(dá)33臺出租車的數(shù)據(jù)。數(shù)據(jù)采集完后,可通過串行接口控制器將數(shù)據(jù)輸入給出租車管理部門的PC機(jī),然后對這些數(shù)據(jù)進(jìn)行分析、匯總、打印等各種處理。下面具體介紹基于大容量IC卡AT45D041的出租車數(shù)據(jù)采集系統(tǒng)的設(shè)計方法。

  出租車數(shù)據(jù)采集系統(tǒng)的原理框圖如圖1所示,由圖可知,該系統(tǒng)由出租車計費器、串行接口控制器、PC機(jī)及大容量IC卡AT45D041等四個部分組成。AT45D041采集多臺出租車計費器中存儲的總累積和乘客記錄等數(shù)據(jù),然后通過串行接口控制器即可將所采集的數(shù)據(jù)輸入給管理部門的PC機(jī),PC機(jī)根據(jù)車牌號或計費器編號可區(qū)分每臺車所對應(yīng)的數(shù)據(jù)。AT45D041與出租車計費器及串行接口控制器之間數(shù)據(jù)的交換均是通過其中的單片機(jī)來完成的,而串行接口控制器與PC機(jī)之間的數(shù)據(jù)交換主要是通過PC機(jī)的串行口來實現(xiàn)的;因此,該數(shù)據(jù)采集系統(tǒng)設(shè)計的關(guān)鍵是AT45D041與單片機(jī)接口軟、硬件設(shè)計及單片機(jī)通過串行口與PC機(jī)之間串行通信的軟、硬件設(shè)計。
 
AT45D041的性能特點及其使用方法

AT45D041的性能特點及內(nèi)部結(jié)構(gòu)

  AT45D041是一由單5V供電、帶串行接口的快閃存儲器,該芯片特別適合于在系統(tǒng)(in-system)反復(fù)編程,其4兆位的存儲容量被分為2048頁,每頁264個字節(jié)。除了主存儲頁外,AT45D041還包含2個SRAM數(shù)據(jù)緩沖區(qū),每個區(qū)的容量均為264個字節(jié),當(dāng)主存儲頁正在編程時,緩沖區(qū)可接收外部數(shù)據(jù)。傳統(tǒng)快閃存儲器往往利用多條地址線和并行接口來實現(xiàn)隨機(jī)存取數(shù)據(jù),而AT45D041則利用串行接口來實現(xiàn)連續(xù)存取數(shù)據(jù)。簡單的串行接口簡化了硬件電路,使線路板尺寸變小,成本降低,抗干擾能力增強(qiáng),系統(tǒng)的可靠性得以提高。數(shù)據(jù)編程寫入時,不需要高編程輸入電壓,只需要單5V(范圍為4.5V至5.5V)即可完成數(shù)據(jù)的寫入及讀出。

  AT45D041的內(nèi)部結(jié)構(gòu)圖如圖2所示,由圖可知,該IC卡有九個引腳,其中SCK為串行時鐘輸入腳,SI和SO分別為串行數(shù)據(jù)輸入、輸出腳。

AT45D041的使用方法

  通過單片機(jī)的控制可完成對AT45D041中數(shù)據(jù)的讀出及寫入操作,當(dāng)芯片使能腳為低電平時,在時鐘輸入腳(SCK)的控制下,通過串行數(shù)據(jù)輸入腳(SI),便可將命令碼、主存儲頁或緩沖區(qū)地址碼串行輸入給該芯片,然后即可讀或?qū)懭霐?shù)據(jù)。值得注意的是,所有的命令碼、地址、數(shù)據(jù)串行輸入時,均是高位在前,低位在后。下面具體介紹數(shù)據(jù)的讀寫方法。

數(shù)據(jù)的讀出

  數(shù)據(jù)的讀出包括主存儲頁直接讀出、從主存儲頁讀取數(shù)據(jù)至緩沖區(qū)、從緩沖區(qū)讀數(shù)據(jù)、讀狀態(tài)寄存器等四種,除命令碼不同外,讀取數(shù)據(jù)的方法均大同小異。由于本數(shù)據(jù)采集系統(tǒng)的設(shè)計只用到了主存儲頁直接讀出,下面只介紹從主存儲頁直接讀取數(shù)據(jù)的方法。主存儲頁直接讀取數(shù)據(jù)的時序波形圖如圖3所示。主存儲頁讀允許用戶從2048主存儲頁的任一頁中讀取數(shù)據(jù),在SCK時鐘脈沖的控制下,先串行輸入命令碼52H、緊接著是4個保留位、然后是20個地址位(即11個頁地址位和9個頁中數(shù)據(jù)起始地址位)、最后是32個無關(guān)位0。4個保留位是用于將來擴(kuò)展該芯片的容量而設(shè)置的,對于AT45D041可輸入4個0,32個無關(guān)位用于初始化讀操作。數(shù)據(jù)通過SO腳串行輸出,在數(shù)據(jù)的讀出過程中,芯片使能腳必須保持低電平,當(dāng)一頁數(shù)據(jù)的最后一個字節(jié)讀完后,會從該頁的第一個字節(jié)開始繼續(xù)讀取數(shù)據(jù)。當(dāng)芯片使能腳(CS)由低電平變?yōu)楦唠娖綍r,將終止數(shù)據(jù)的讀取,SO腳保持高阻態(tài)。

數(shù)據(jù)的寫入

  數(shù)據(jù)的寫入包括將數(shù)據(jù)直接寫入主存儲器頁、寫入緩沖區(qū)、通過緩沖區(qū)將數(shù)據(jù)寫入主存儲頁(帶內(nèi)置擦除功能)、通過緩沖區(qū)將數(shù)據(jù)寫入主存儲頁(不帶內(nèi)置擦除功能)、主存儲頁自動重寫等五種。除命令碼不同外,數(shù)據(jù)寫入的方法均差不多。在本數(shù)據(jù)采集系統(tǒng)的設(shè)計中使用的是將數(shù)據(jù)直接寫入主存儲頁的方法,該方法的時序波形如圖3所示,要寫入的數(shù)據(jù)須事先寫入緩沖區(qū)1或緩沖區(qū)2,然后再利用帶內(nèi)置擦除功能的緩沖區(qū)至主存儲頁寫入功能將數(shù)據(jù)寫入至指定的主存儲頁。在SCK時鐘脈沖的控制下,先串行輸入命令碼82H或85H、緊接著是4個保留位、然后是11個頁地址位(表示數(shù)據(jù)要寫入的指定主存儲頁)、最后是9個數(shù)據(jù)起始地址位(表示緩沖區(qū)第一個字節(jié)的起始地址)。當(dāng)所有的地址位均串行輸入后,芯片通過SI腳開始接收數(shù)據(jù)并存儲在緩沖區(qū)1或緩沖區(qū)2中,當(dāng)緩沖區(qū)存滿后,將從緩沖區(qū)的第一個字節(jié)處開始存儲數(shù)據(jù)。當(dāng)芯片使能腳CS由低電平變?yōu)楦唠娖綍r,芯片將首先擦除指定的主存儲頁,然后再將存儲在緩沖區(qū)中的數(shù)據(jù)寫入指定的主存儲頁。

硬件寫保護(hù)及復(fù)位功能

  當(dāng)寫保護(hù)腳(WP)為低電平時,主存儲頁的前256頁不能寫入數(shù)據(jù)。當(dāng)復(fù)位腳(RESET)變?yōu)榈碗娖綍r,將中斷所有正在進(jìn)行的讀操作,并將內(nèi)部置成空閑狀態(tài)。一旦該腳變?yōu)楦唠娖剑纯蓪π酒M(jìn)行正常的讀寫操作。

AT45D041與出租車計費器及串行接口控制器的接口設(shè)計

  AT45D041用于出租車數(shù)據(jù)采集系統(tǒng)時,一方面它采集出租車計費器中存儲的各種數(shù)據(jù),此時計費器中的單片機(jī)將數(shù)據(jù)寫入到AT45D041中的主存儲頁中;另一方面通過串行接口控制器將數(shù)據(jù)輸入給管理部門的PC機(jī),此時串行接口控制器中的單片機(jī)從AT45D041中的主存儲頁讀取數(shù)據(jù),然后再將數(shù)據(jù)通過串行口傳送到PC機(jī)中。因此AT45D041與出租車計費器及串行接口控制器的接口設(shè)計主要表現(xiàn)為AT45D041與單片機(jī)的接口設(shè)計,假設(shè)單片機(jī)為AT89C51,則單片機(jī)與AT45D041的接口如圖4所示。圖中R、C是使AT45D041具有上電復(fù)位功能,寫保護(hù)腳(WP)接VCC是讓AT45D041的前256頁也能寫入數(shù)據(jù)。

  串行接口控制器的主要作用是從AT45D041的主存儲中讀出數(shù)據(jù),然后再將數(shù)據(jù)輸入給PC機(jī),它的核心是單片機(jī),利用單片機(jī)來實現(xiàn)和PC機(jī)的串行通信。圖5所示為串行接口控制器的硬件電路圖,因PIC系列單片機(jī)由于具有實用、低價、省電、小巧和高速等優(yōu)點,所以串行接口控制器中的單片機(jī)選PIC16C57,由于該單片機(jī)沒有專用的異步通訊口(RXD,TXD)及波特率發(fā)生器,因此要實現(xiàn)PIC單片機(jī)與PC機(jī)的串行通信,必須由軟件指定PIC的兩個I/O端口(如RA0為RXD,RA1為TXD)為異步通訊口,并按照預(yù)定的波特率編寫軟件延時子程序。 圖中電阻為10KΩ,電容為10_F,電源電壓Vcc為5V。MAX232為一電平轉(zhuǎn)換芯片,它將單片機(jī)輸出的TTL電平轉(zhuǎn)換成PC機(jī)能接收的RS-232電平,并將PC機(jī)串行口輸出的RS-232電平轉(zhuǎn)換成單片機(jī)能接收的TTL電平。

系統(tǒng)軟件設(shè)計

  系統(tǒng)軟件設(shè)計由兩個部分組成:單片機(jī)讀寫AT45D041中的數(shù)據(jù)及單片機(jī)和PC機(jī)之間的串行通信。單片機(jī)讀寫AT45D041中數(shù)據(jù)的軟件設(shè)計比較簡單,這里不再敘述。下面主要介紹單片機(jī)和PC機(jī)之間串行通信的軟件設(shè)計,由于VB6.0提供了串行通訊MSComm(電話盒)控件來為應(yīng)用程序提供串行通信,它將串口設(shè)備當(dāng)作一個目標(biāo)封裝起來,容易操作,編程很方便,其良好的用戶界面、簡單方便的串行通信和實用性強(qiáng)的優(yōu)點,無須借用其他語言就可以開發(fā)出優(yōu)秀的通信軟件,因而PC機(jī)軟件采用VB6.0語言編寫。MSComm控件的調(diào)出及其主要屬性如下。

MSComm控件的調(diào)出

  VB 6.0的MSComm控件并不會主動出現(xiàn)在工具箱中,當(dāng)我們需要它時,讓它出現(xiàn)在工具箱中的步驟如下:


MSComm屬性

  MSComm屬性很多,其重要的屬性說明如下:


  軟件設(shè)計時應(yīng)注意的幾個問題


結(jié)語

  本文所介紹的出租車數(shù)據(jù)采集系統(tǒng)使用了大容量IC卡AT45D041、PC機(jī)串行口及VB6.0來實現(xiàn)數(shù)據(jù)的采集和傳輸,不僅數(shù)據(jù)采集方便,且系統(tǒng)的硬件和軟件設(shè)計均較簡單,軟件升級容易。降低了系統(tǒng)成本,提高了系統(tǒng)的可靠性,目前該系統(tǒng)已在許多大中城市的出租車公司得到了廣泛的應(yīng)用。■
 

參考文獻(xiàn):

1.薛棟梁. ‘MCS-51/151/251 單片機(jī)原理與應(yīng)用(二)’, 中國水利水電出版社,2001

2.范逸之. ‘Visual Basic 與 RS232 串行通訊控制’, 中國青年出版社, 2001



關(guān)鍵詞: 汽車電子 汽車電子

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉