Intel16位單片機的特殊串行通訊方式
接收過(guò)程開(kāi)始后,先由EPA捕獲比較模塊捕捉起始位,捕獲到時(shí)產(chǎn)生一次EPA的普通中斷。在這個(gè)中斷處理程序中,將捕獲方式轉變?yōu)楸容^方式,并根據要求的波特率設定比較時(shí)間為個(gè)位周期,同時(shí)啟動(dòng)PTS功能。在此后的個(gè)位周期,即第一個(gè)數據位周期的斷時(shí)刻到來(lái)時(shí),第一個(gè)PTS周期開(kāi)始執行,并根據設定對該位數據進(jìn)行采樣(為了提高抗干擾能力,可以采用多數表決方式采樣),直到各位數據由PTS中斷根據設公平的波特率等參數直到各位數據由PTS中斷根據設定的波特率等參數采樣完成,系統都不需CPU再干預為止。等到一個(gè)數據單元接收完畢后,PTS中斷就結束了。這時(shí),程序再次進(jìn)入一個(gè)EPA的普通中斷,在這個(gè)中斷中,可將PTS中接收的數據保存,然后將該EPA模塊設為捕獲方式,以捕獲下一個(gè)數據單元的起始位。以此方式反復運行就可以逐一地接收數據單元了。對于串行發(fā)送方式,可以在EPA的捕獲/比較模塊或比較模塊中任選一個(gè)作為串行發(fā)送引腳。然后再根據要求編寫(xiě)PTS控制塊,最后利用EPA的普通中斷和PTS配合來(lái)產(chǎn)生逐位發(fā)送的串行發(fā)送時(shí)序,圖3所示是其發(fā)送時(shí)序。其具體工作過(guò)程是:首先將待發(fā)送的數據單元與通訊參數一同寫(xiě)入相應的發(fā)送PTS控制塊中。然后在發(fā)送引腳上產(chǎn)生一個(gè)下降沿來(lái)作為起始位,接著(zhù)就可以啟動(dòng)PTS中斷了。在第一個(gè)PTS中斷中,先在PTS的控制下在發(fā)送引腳上發(fā)出一個(gè)位信號。然后再在以后的PTS中斷中按規定的波特率逐位發(fā)送關(guān)斷,此過(guò)程無(wú)須CPU 干預,直到一個(gè)數據單元發(fā)送完成后進(jìn)入一次EPA的普通中斷為止。在這個(gè)中斷處理中,應首先更新有關(guān)寄存器的設置,然后放入下一個(gè)特發(fā)送的數據單元,以構造出新的PTS控制塊。之后再產(chǎn)生一個(gè)新的發(fā)送起始位,以重新啟動(dòng)新一輪的PTS來(lái)發(fā)送下一個(gè)數據單元。這樣反復的運行就實(shí)現了串行數據的發(fā)送。
4 結束語(yǔ)
實(shí)驗證明,196MC/MD單片機的這種串行通訊方式在實(shí)際應用中效果非常好。雖然相對于獨立串口來(lái)說(shuō),該方法略顯復雜。但是這種通訊方法的靈活性和實(shí)用性是其它獨立串口所無(wú)法比擬的。而且這種通訊方式充分顯示了Intel 16單片機技術(shù)中EPA和PTS的技術(shù)特點(diǎn),這也是196MC/MD單片機應用的重要技術(shù)之一。
評論