TMS320F206與CPU卡通信協(xié)議的優(yōu)化
為了降低讀取數據出錯的概率,將起始位的判斷周期定為位寬的1/3,并在檢測到起始位后,繼續(xù)等待1/3位寬(再等待一個定時中斷),對起始位進行確認(讀取的值為0)。此時才認定是一個正常的起始位,將定時周期修改為正常的位寬。此后每個定時器中斷可以正確讀取1位的數據,且保證了讀取的時機處在1/3~2/3位寬的中間部分,如圖4所示。
此時,圖3中出錯的問題也得到解決,如圖5所示。
此外,還解決了毛刺引起的起始位誤判的問題。因為一個毛刺的持續(xù)時間不會延續(xù)1/3位寬的時間,否則該應用將因穩(wěn)定性太差而不能得到實用。
4 硬件改進
除了單純使用定時器實現外,還可以結合INT2中斷實現起始位的確認,電路如圖6所示。
此時,建議延后1/3或者1/2個位寬時間,再讀取起始位的狀態(tài)。若還是為低電平,則作為一個有效的起始位,關閉INT2中斷,然后按照一個完整位寬的時問啟動定時器,每次讀取1位,完成接收1字節(jié)后,關閉定時器,開啟INT2中斷,啟動下一個字節(jié)的接收流程。
評論