極具成本效益的磁卡讀卡器設(shè)計
讀卡頭靈敏度:讀卡頭靈敏度取決于線圈匝數(shù)以及讀卡頭與磁條之間的間距。
本文引用地址:http://2s4d.com/article/275080.htm由于所有這些參數(shù)的影響,信號幅度可能在幾百個uV至幾十個mV之間變化。這個范圍可以用放大器進(jìn)行補(bǔ)償。但不能用固定增益放大器。當(dāng)劃卡速度很高,卡的質(zhì)量又很好時,放大器輸出可以飽和到電源軌電壓。而當(dāng)信號飽和時,用兩個連續(xù)峰值之間的時間差代表的信息將丟失。因此如實地放大傳感器信號、不至于使波形發(fā)生飽和或改變很重要。這就要求使用增益可配置的放大器,以便我們隨時調(diào)整增益。要做到這一點,系統(tǒng)必須能夠檢測信號變?nèi)醯臅r刻。這可以用跟蹤傳感器信號的ADC尋找近似的信號峰值來實現(xiàn)。
圖6顯示了一個完整的系統(tǒng)。最好將放大電路做成兩級,用ADC接收第一級電路的輸出。這樣就無需高分辨率ADC,8位ADC就足以滿足這種應(yīng)用需求。第一級可以是固定增益的放大器,也可以是可變增益放大器。第二級是可變增益放大器。CPU讀取ADC結(jié)果,并通過調(diào)整增益使第二級放大器的信號輸出達(dá)到最佳。第二級放大器的輸出送到峰值檢測器/磁滯比較器電路進(jìn)行峰值檢測。來自檢測器的脈沖輸出被饋送至定時器進(jìn)行時間差測量,然后由CPU解碼出1和0.
圖6:磁卡讀卡器框圖
至此仍然存在增益更新之前是否有數(shù)據(jù)丟失的問題。為了避免這個問題,磁卡的兩頭會用前導(dǎo)零進(jìn)行編碼以實現(xiàn)同步(這樣可以支持雙向劃卡)。這樣做的目的是使解碼器同步于劃卡速度。舉例來說,在磁道1中,共有約62個前導(dǎo)零。磁道1具有210個比特的數(shù)據(jù)密度。因此我們可以估算出劃卡速度為5 IPS時前導(dǎo)零將持續(xù)約60ms時間,劃卡速度為50 IPS時前導(dǎo)零將持續(xù)6ms.對另外兩個磁道來說或多或少是相同的,如圖7所示。在人為劃卡時一開始就是50 IPS的劃卡速度是不可能,因此系統(tǒng)具有比6ms長得多的時間來測量峰值并調(diào)整增益。圖8顯示了增益控制過程。
圖7:磁卡中三個磁道的內(nèi)容
需要注意的是,CPU在劃卡期間可能會持續(xù)精細(xì)調(diào)整增益以適應(yīng)變化的幅度。正常情況下,順著劃卡的方向,劃卡速度會增加,從而增加信號幅度。注意,在使用以恒定速度劃卡的自動劃卡機(jī)時這個觀點是不正確的。
圖8:增益改變過程
實現(xiàn)磁卡讀卡器
圖9顯示了基于賽普拉斯PSoC 1的雙磁道磁卡讀卡器實現(xiàn)方案。PSoC 1處理器具有與8位處理器內(nèi)核集成在一起的可配置模擬和數(shù)字塊,在單顆芯片上集成了所有的功能。需要注意的是,圖中所示的無源器件是在處理器的外部。
圖9:PSoC 1磁卡讀卡器
由于傳感器信號可能是負(fù)的,因此必須用直流進(jìn)行偏置。在PSoC 1中,模擬信號可以以不同于電源地的地為參考。這個地被稱為模擬地(AGND),輸入信號被鉗位到這個模擬地。信號隨后用可編程增益放大器(PGA)進(jìn)行兩級放大。PGA是用連續(xù)時間模擬模塊實現(xiàn)的。它具有一個電阻陣列,當(dāng)配置為放大器時用于改變增益。增益可以被配置為1至48之間18個選項之一。CY8C28243 PSoC 1集成了一個最大采樣速率為150ksps的10位SAR ADC.
CPU讀取ADC,然后控制放大器增益。放大后的信號送到磁滯比較器產(chǎn)生邊沿接近信號峰值的數(shù)字信號。CPU隨后必須調(diào)整放大器增益,使其閾值接近峰值但不超過峰值。這有助于避免磁卡發(fā)生抖動時出現(xiàn)定時誤差。磁滯比較器輸出則送到定時器進(jìn)行脈沖寬度測量。CPU讀取定時器輸出,并解碼為邏輯1或0的數(shù)據(jù)。當(dāng)劃卡結(jié)束時,CPU打包數(shù)據(jù)比特,檢查是否有錯誤,然后通過I2C、SPI或UART接口將數(shù)據(jù)送給主機(jī)。
評論