TMS320F206與CPU卡通信協(xié)議的優(yōu)化
為了降低讀取數據出錯的概率,將起始位的判斷周期定為位寬的1/3,并在檢測到起始位后,繼續等待1/3位寬(再等待一個(gè)定時(shí)中斷),對起始位進(jìn)行確認(讀取的值為0)。此時(shí)才認定是一個(gè)正常的起始位,將定時(shí)周期修改為正常的位寬。此后每個(gè)定時(shí)器中斷可以正確讀取1位的數據,且保證了讀取的時(shí)機處在1/3~2/3位寬的中間部分,如圖4所示。

此時(shí),圖3中出錯的問(wèn)題也得到解決,如圖5所示。

此外,還解決了毛刺引起的起始位誤判的問(wèn)題。因為一個(gè)毛刺的持續時(shí)間不會(huì )延續1/3位寬的時(shí)間,否則該應用將因穩定性太差而不能得到實(shí)用。
4 硬件改進(jìn)
除了單純使用定時(shí)器實(shí)現外,還可以結合INT2中斷實(shí)現起始位的確認,電路如圖6所示。

此時(shí),建議延后1/3或者1/2個(gè)位寬時(shí)間,再讀取起始位的狀態(tài)。若還是為低電平,則作為一個(gè)有效的起始位,關(guān)閉INT2中斷,然后按照一個(gè)完整位寬的時(shí)問(wèn)啟動(dòng)定時(shí)器,每次讀取1位,完成接收1字節后,關(guān)閉定時(shí)器,開(kāi)啟INT2中斷,啟動(dòng)下一個(gè)字節的接收流程。
評論