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