新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用PIC單片機(jī)實(shí)現(xiàn)的脈沖編碼傳感器

用PIC單片機(jī)實(shí)現(xiàn)的脈沖編碼傳感器

作者: 時間:2012-01-03 來源:網(wǎng)絡(luò) 收藏

引 言
  隨著社會的發(fā)展,出租車成為人們生活中非常方便且較普遍的交通工具,但出租車計價器卻相對較為落后。在過去,出租車采用機(jī)械式計價器,用齒輪比的方式來計算出租車所跑的里程數(shù),并由里程數(shù)來換算車費(fèi)。但是機(jī)械齒輪體積較大,計算不是很準(zhǔn)確,而且容易磨損。后來又采用了傳感器方式,利用傳感器接收車的跑動信息,從而計算里程數(shù)和車費(fèi)。但此方法通常使干擾信號也能產(chǎn)生計數(shù)脈沖,所以也不完善。筆者引用單片機(jī)技術(shù),使用編碼和解碼信息傳遞方式來完成計價器計數(shù)脈沖的形成。單片機(jī)可以很精確的檢測到傳感器信號,這樣計價就會非常準(zhǔn)確。完成此裝置所需器件簡單,成本非常低,技術(shù)上也容易實(shí)現(xiàn)。

1 系統(tǒng)原理
  系統(tǒng)框圖如圖1所示,本文主要介紹虛線框內(nèi)模塊的設(shè)計。出租車驅(qū)動輪轉(zhuǎn)數(shù)與轉(zhuǎn)軸轉(zhuǎn)數(shù)的傳動比是一定的,而轉(zhuǎn)軸轉(zhuǎn)動時帶動一小磁體轉(zhuǎn)動,其傳動比也是一定的,小磁體每轉(zhuǎn)動一周就和磁感應(yīng)傳感器正對一次,磁感應(yīng)傳感器就會產(chǎn)生一個大約20 ms的低脈沖,可以通過計算磁感應(yīng)傳感器產(chǎn)生的低脈沖數(shù)來計算出租車跑的里程數(shù)及相應(yīng)的車費(fèi)。

  編碼器的單片機(jī)通過一個I/0口來檢測磁感應(yīng)傳感器信號,當(dāng)確定為傳感器產(chǎn)生的信號時,就通過另一個I/O口向解碼器的單片機(jī)發(fā)送一組編碼,而解碼器的單片機(jī)則首先判斷當(dāng)前準(zhǔn)備接收的數(shù)據(jù)是編碼器發(fā)送的編碼還是解碼寫入器發(fā)送的解碼。當(dāng)判斷是解碼寫入器發(fā)送的解碼時,解碼器的單片機(jī)接收此解碼,并利用12c總線協(xié)議將解碼保存到E2PROM中去;當(dāng)判斷是編碼器發(fā)送的編碼時,解碼器的單片機(jī)先接收此編碼,然后讀出自己E2PROM中的解碼,將其與接收到的編碼相比較,如果相同則解碼器單片機(jī)通過一個I/0口向計價裝置發(fā)出計價脈沖,否則不發(fā)出計價脈沖。注意:這里每一輛出租車計價器的編碼和解碼都是不同的,這樣有利于出租車的管理以及防止計價器的盜用,解碼器中的解碼是使用解碼寫入器寫入其E2PRoM中去的。每輛出租車計價器都具有一個編碼器和一個解碼器,而所有的出租車計價器都共用一個解碼寫人器。也就是說,在計價器賣出之前,用同一個解碼寫入器為所有的計價器的解碼器寫入不同的初始解碼。寫入初始解碼以后,計價器就不再需要解碼寫入器了,除非此計價器壞掉需要重新更換解碼器,此時需再用解碼寫入器給新的解碼器寫入初始解碼。硬件電路設(shè)計圖如圖2和圖3所示。


2 系統(tǒng)功能的實(shí)現(xiàn)
2.1 傳感器

  本系統(tǒng)的編碼器部分利用傳感器來接收出租車的跑動信號,這里采用的傳感器為磁感應(yīng)傳感器,當(dāng)其與車輛轉(zhuǎn)軸帶動的小磁體正對時,傳感器的輸出引腳便會產(chǎn)生一個約20ms的低脈沖。

2.2編碼器

  編碼器部分使用的單片機(jī)為PIC12C508A,利用PIC12C508A芯片的第4個引腳GP3來檢測傳感器的輸出信號。當(dāng)檢測到確定的傳感器信號后,單片機(jī)將按一定的時序在其第7個引腳GP0連續(xù)發(fā)送5個十進(jìn)制數(shù)據(jù)(即編碼形式為5位十進(jìn)制數(shù))給解碼器,每個數(shù)據(jù)都是按脈沖方式發(fā)送出去的。十進(jìn)制數(shù)是多少,就發(fā)送幾個低脈沖,發(fā)送一個十進(jìn)制數(shù)據(jù)所用的時間要保證在255μs以內(nèi)。其程序流程圖如圖4所示。

2.3 解碼寫入器
  解碼寫入器部分使用的單片機(jī)為AT89C51,解碼寫入器的功能與編碼器的功能類似。由于發(fā)送的解碼要能隨時改變,這里可以外接5個小數(shù)字鍵盤,解碼寫入器要發(fā)送的解碼可以從5個小數(shù)字鍵盤上獲得。為了和編碼器發(fā)送的編碼區(qū)別開來,解碼寫入器需要先發(fā)送一個區(qū)別字符,使解碼器能夠識別出當(dāng)前接收的是編碼器還是解碼寫入器發(fā)出的數(shù)據(jù)。區(qū)別字符后面緊跟著的是解碼,所有這些數(shù)據(jù)的發(fā)送方式與編碼器編碼的發(fā)送方式完全相同,由AT89C51單片機(jī)的P3.4口輸出,其程序流程圖如圖5所示。

2.4 解碼器
  
這部分采用的單片機(jī)是PIC12CE5C18,其內(nèi)部有E2PROM??梢岳?I2c協(xié)議隨時從E2PROM中讀出解碼或者向E2PROM中寫入新的編碼。下面介紹工作過程。首先解碼器讀出內(nèi)部E2PRoM中00h~04h中的5個十進(jìn)制數(shù)據(jù),分別保存到5個內(nèi)部數(shù)據(jù)存儲單元中。然后調(diào)用接收數(shù)據(jù)子程序,接收1個數(shù)據(jù),并先保存到1個內(nèi)部數(shù)據(jù)存儲單元中,判斷這個數(shù)據(jù)是否為區(qū)別字符 10。若不是區(qū)別字符,說明現(xiàn)在接收的數(shù)據(jù)可能是編碼器發(fā)送的編碼,則繼續(xù)接收后面的4個數(shù)據(jù),并保存到4個內(nèi)部數(shù)據(jù)存儲單元中,將接收到的這5個十進(jìn)制數(shù)據(jù)與前面解碼器讀出的內(nèi)部E2PROM中00h~04h中的5個十進(jìn)制數(shù)據(jù)進(jìn)行比較,相等則在GP0引腳上發(fā)送一個2 ms的低脈沖作為計價脈沖,不相等則重新接收數(shù)據(jù)。若是區(qū)別字符10,說明現(xiàn)在解碼寫入器要修改解碼器的解碼,必須馬上接收跟在區(qū)別字符后面的5個數(shù)據(jù),并將這5個十進(jìn)制數(shù)據(jù)保存到E2PROM的00h~04h中,覆蓋以前的解碼。其程序流程圖如圖6所示,其調(diào)用的子程序如圖7和圖8所示。

結(jié)論
  本系統(tǒng)解決了以往計價器計價不準(zhǔn)確、使用壽命短等缺點(diǎn),現(xiàn)在采用以單片機(jī)為主控制單元的編碼解碼技術(shù),使每個出租車的計價器擁有不同的編碼,從而防止出租車之間計價器的相互盜用,便于出租車公司對出租車的管理。同時,可以隨時對單片機(jī)的外圍電路進(jìn)行擴(kuò)展,并通過軟件編程實(shí)現(xiàn)本系統(tǒng)的不斷升級。



評論


相關(guān)推薦

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

關(guān)閉