1. 程式人生 > >一種極具成本效益的磁卡讀卡器設計

一種極具成本效益的磁卡讀卡器設計

磁卡質量:隨著時間的推移以及使用量的增加,卡的質量將隨著磁場強度的降低以及由於磁卡上的灰塵與刮擦而引起的失真加大而下降。這些因素綜合在一起將降低感測器訊號的幅度。

讀卡頭靈敏度:讀卡頭靈敏度取決於線圈匝數以及讀卡頭與磁條之間的間距。

由於所有這些引數的影響,訊號幅度可能在幾百個uV至幾十個mV之間變化。這個範圍可以用放大器進行補償。但不能用固定增益放大器。當劃卡速度很高,卡的質量又很好時,放大器輸出可以飽和到電源軌 電壓。而當訊號飽和時,用兩個連續峰值之間的時間差代表的資訊將丟失。因此如實地放大感測器訊號、不至於使波形發生飽和或改變很重要。這就要求使用增益可 配置的放大器,以便我們隨時調整增益。要做到這一點,系統必須能夠檢測訊號變弱的時刻。這可以用跟蹤感測器訊號的ADC尋找近似的訊號峰值來實現。

圖 6顯示了一個完整的系統。最好將放大電路做成兩級,用ADC接收第一級電路的輸出。這樣就無需高解析度ADC,8位ADC就足以滿足這種應用需求。第一級 可以是固定增益的放大器,也可以是可變增益放大器。第二級是可變增益放大器。CPU讀取ADC結果,並通過調整增益使第二級放大器的訊號輸出達到最佳。第 二級放大器的輸出送到峰值檢測器/磁滯比較器電路進行峰值檢測。來自檢測器的脈衝輸出被饋送至定時器進行時間差測量,然後由CPU解碼出1和0。

圖6:磁卡讀卡器框圖。
圖6:磁卡讀卡器框圖。

至 此仍然存在增益更新之前是否有資料丟失的問題。為了避免這個問題,磁卡的兩頭會用前導零進行編碼以實現同步(這樣可以支援雙向劃卡)。這樣做的目的是使解 碼器同步於劃卡速度。舉例來說,在磁軌1中,共有約62個前導零。磁軌1具有210個位元的資料密度。因此我們可以估算出劃卡速度為5 IPS時前導零將持續約60ms時間,劃卡速度為50 IPS時前導零將持續6ms。對另外兩個磁軌來說或多或少是相同的,如圖7所示。在人為劃卡時一開始就是50 IPS的劃卡速度是不可能,因此係統具有比6ms長得多的時間來測量峰值並調整增益。圖8顯示了增益控制過程。

圖7:磁卡中三個磁軌的內容。
圖7:磁卡中三個磁軌的內容。

需要注意的是,CPU在劃卡期間可能會持續精細調整增益以適應變化的幅度。正常情況下,順著劃卡的方向,劃卡速度會增加,從而增加訊號幅度。注意,在使用以恆定速度劃卡的自動劃卡機時這個觀點是不正確的。

圖8:增益改變過程。
圖8:增益改變過程。