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