AVR單片機中TWI的模塊化檢測系統(tǒng)設計
3.2 從機驅(qū)動程序
由于對于主機而言,等待TWINT置位在任何情況下都能在很短的時間內(nèi)完成,所以對于MT和MR模式的程序都是通過軟件查詢TWINT位實現(xiàn)。但是對于從機而言,由于首先要接收主機發(fā)送的從機地址,并且主機并不是總是在訪問同一個從機,所以從機在接收主機發(fā)送的地址時,如使用軟件查詢方法,勢必要等待很長時間,這樣就浪費了大量的時間。因此在從機ST和SR模式程序的設計時,需要使用TWI中斷,這樣在等待TWINT置位期間可以執(zhí)行其他程序,有效地提高了程序的運行效率。圖5為從機ST和SR模式程序流程,具體的ST和SR處理程序可以參考相關的設計手冊,這里給出的只是ST和SR切換以及容錯處理程序。當TWINT置位時,進入TWI中斷服務程序。本文引用地址:http://www.ex-cimer.com/article/172930.htm
在從機TWI總線程序設計時,在等待TWINT置位期間TWI總線可能因為外界干擾出現(xiàn)一些故障,所以容錯處理程序不僅在TWI中斷服務程序得到調(diào)用,在等待TWINT置位期間也要調(diào)用該程序。從機的容錯處理程序代碼如下:
4 系統(tǒng)測試
在模塊化檢測系統(tǒng)測試時,主要使用了以下從機檢測模塊:3個超聲波模塊、電子羅盤、紅外距離檢測模塊以及溫度檢測模塊。在系統(tǒng)測試時針對TWI總線,主要測試了總線的傳輸速度、實時響應、出錯率、抗干擾能力。測試時為便于觀察各個觀測量的狀態(tài),使用了LCD顯示。測試過程中總線的比特率設定為100 kbps,通過觀測LCD顯示的變量,TWI總線實時響應速度比較快。在外加電磁干擾的條件下,總線只有在極少數(shù)開機時出現(xiàn)錯誤,主要原因是開機時出現(xiàn)的浪涌電流。
結(jié)語
本文設計的模塊化檢測系統(tǒng),利用TWI總線作為各個器件通信的媒介,并以此為基礎構(gòu)建總線式拓撲網(wǎng)絡,簡化了硬件和軟件設計,縮短了系統(tǒng)的開發(fā)周期。在TWI總線驅(qū)動程序設計上,增加容錯處理程序,使總線運行更加穩(wěn)定和可靠,提高了系統(tǒng)的抗干擾能力。同時在從機TWI總線驅(qū)動程序設計時使用TWI中斷,合理安排各個功能程序的執(zhí)行時間,有效地提高了程序的運行效率。
評論