基于EPA和PTS的8XC196MC/MD的串行通信
目前,在眾多應用領(lǐng)域中,出現了許多所謂"智能儀表"和"智能儀器",這些系統大多是以單片機為核心的計算機應用系統。在眾多的單片機中,Intel公司的8XC196MC/MD可謂其中的佼佼者。
它是16位單片機中功能最強大的單片機之一,幾乎可以勝任各種測控工作,尤其在電機控制中備受青睞。然而由于8X196MC/MD單片機沒(méi)有提供硬件的通用異步收發(fā)器(UART),這給用慣了UART的用戶(hù)帶來(lái)了一些不便。但利用專(zhuān)門(mén)的PTS模式,不僅可以實(shí)現串行通信,而且操作更加靈活,效率更高,CPU的開(kāi)銷(xiāo)也更??;既可以實(shí)現異步(ASIO)功能,也可以實(shí)現同步(SSIO)功能;波特率由EPA建立,包括校驗位和停止位在內,收發(fā)數據格式可達16位/字符。
1 EPA和PTS概述[1-2]
1.1 EPA及其工作原理
EPA(Event Processor Array,事件處理器陣列),類(lèi)似于HSIO,用來(lái)處理與時(shí)間有關(guān)的輸入和輸出事件,但比其更靈活、更高效。在EPA中,主要提供兩類(lèi)模塊--捕獲/比較模塊和獨立的比較模塊,用于實(shí)現捕獲和比較兩種功能。每個(gè)模塊都與指定的一個(gè)輸入/輸出引腳相關(guān)聯(lián),支持其高速輸入輸出功能,所有模塊都能產(chǎn)生中斷。"捕獲"用來(lái)捕獲產(chǎn)生于引腳上的跳變事件,包括正跳變、負跳變和正負跳變,并記錄這些事件發(fā)生的時(shí)刻;"比較"是和預定的時(shí)間作比較,時(shí)間一到即執行以下選定的輸出功能:復位定時(shí)器,啟動(dòng)一次A/D轉換,為波形發(fā)生器產(chǎn)生一個(gè)重裝載觸發(fā)信號,改變輸出引腳狀態(tài)等。
1.2 PTS及其工作原理
PTS(Peripheral Transaction Server,外設事務(wù)服務(wù)器),是一種特殊的中斷響應方式。與普通中斷響應相比,PTS響應把同一個(gè)中斷映射到相應的PTS通道。該通道產(chǎn)生一個(gè)PTS周期,它就像DMA周期那樣插入到正常指令流中,不需要額外的軟件開(kāi)銷(xiāo),因此其CPU開(kāi)銷(xiāo)要比一般的中斷響應少得多。PTS有一個(gè)PTS向量表,其排列次序和優(yōu)先級順序與普通中斷向量相同,但去掉了NMI、非法操作碼和軟件陷阱3種中斷。除了NMI之外,所有的PTS通道的優(yōu)先級高于任何一個(gè)普通中斷。每個(gè)PTS向量都指向一個(gè)PTS控制塊(PTSCB),控制塊說(shuō)明了應執行的微代碼。它必須駐留在內部RAM空間內,每個(gè)控制塊包含8個(gè)字節,其首址應能被8除盡。
8XC196MC/MD有4種PTS工作方式,要實(shí)現串行通信需使用其SIO(串行輸入/輸出)方式。其中SIO有兩種方式:ASIO(異步串行I/O)和SSIO(同步串行I/O)。要工作于某一方式必須建立相應的控制塊(PTSCB)。與SIO方式相對應的控制塊有兩個(gè),如圖1所示。此處只對BAUD和SAMPTIME加以說(shuō)明。
BAUD(LO和HI):存放控制SIO運行波特率的16位數據。異步方式下,由下式計算:FXTAL/(4
評論