目前,在眾多應(yīng)用領(lǐng)域中,出現(xiàn)了許多所謂“智能儀表”和“智能儀器”,這些系統(tǒng)大多是以單片機(jī)為核心的計(jì)算機(jī)應(yīng)用系統(tǒng)。在眾多的單片機(jī)中,Intel公司的8XC196MC/MD可謂其中的佼佼者。它是16位單片機(jī)中功能最強(qiáng)大的單片機(jī)之一,幾乎可以勝任各種測(cè)控工作,尤其在電機(jī)控制中備受青睞。然而由于8X196MC/MD單片機(jī)沒有提供硬件的通用異步收發(fā)器(UART),這給用慣了UART的用戶帶來了一些不便。但利用專門的PTS模式,不僅可以實(shí)現(xiàn)串行通信,而且操作更加靈活,效率更高,CPU的開銷也更??;既可以實(shí)現(xiàn)異步(ASIO)功能,也可以實(shí)現(xiàn)同步(SSIO)功能;波特率由EPA建立,包括校驗(yàn)位和停止位在內(nèi),收發(fā)數(shù)據(jù)格式可達(dá)16位/字符。
1 EPA和PTS概述
1.1 EPA及其工作原理
EPA(Event Processor Array,事件處理器陣列),類似于HSIO,用來處理與時(shí)間有關(guān)的輸入和輸出事件,但比其更靈活、更高效。在EPA中,主要提供兩類模塊--捕獲/比較模塊和獨(dú)立的比較模塊,用于實(shí)現(xiàn)捕獲和比較兩種功能。每個(gè)模塊都與指定的一個(gè)輸入/輸出引腳相關(guān)聯(lián),支持其高速輸入輸出功能,所有模塊都能產(chǎn)生中斷?!安东@”用來捕獲產(chǎn)生于引腳上的跳變事件,包括正跳變、負(fù)跳變和正負(fù)跳變,并記錄這些事件發(fā)生的時(shí)刻;“比較”是和預(yù)定的時(shí)間作比較,時(shí)間一到即執(zhí)行以下選定的輸出功能:復(fù)位定時(shí)器,啟動(dòng)一次A/D轉(zhuǎn)換,為波形發(fā)生器產(chǎn)生一個(gè)重裝載觸發(fā)信號(hào),改變輸出引腳狀態(tài)等。
1.2 PTS及其工作原理
PTS(Peripheral Transaction Server,外設(shè)事務(wù)服務(wù)器),是一種特殊的中斷響應(yīng)方式。與普通中斷響應(yīng)相比,PTS響應(yīng)把同一個(gè)中斷映射到相應(yīng)的PTS通道。該通道產(chǎn)生一個(gè)PTS周期,它就像DMA周期那樣插入到正常指令流中,不需要額外的軟件開銷,因此其CPU開銷要比一般的中斷響應(yīng)少得多。PTS有一個(gè)PTS向量表,其排列次序和優(yōu)先級(jí)順序與普通中斷向量相同,但去掉了NMI、非法操作碼和軟件陷阱3種中斷。除了NMI之外,所有的PTS通道的優(yōu)先級(jí)高于任何一個(gè)普通中斷。每個(gè)PTS向量都指向一個(gè)PTS控制塊(PTSCB),控制塊說明了應(yīng)執(zhí)行的微代碼。它必須駐留在內(nèi)部RAM空間內(nèi),每個(gè)控制塊包含8個(gè)字節(jié),其首址應(yīng)能被8除盡。
8XC196MC/MD有4種PTS工作方式,要實(shí)現(xiàn)串行通信需使用其SIO(串行輸入/輸出)方式。其中SIO有兩種方式:ASIO(異步串行I/O)和SSIO(同步串行I/O)。要工作于某一方式必須建立相應(yīng)的控制塊(PTSCB)。與SIO方式相對(duì)應(yīng)的控制塊有兩個(gè),如圖1所示。此處只對(duì)BAUD和SAMPTIME加以說明。
BAUD(LO和HI):存放控制SIO運(yùn)行波特率的16位數(shù)據(jù)。異步方式下,由下式計(jì)算:FXTAL/(4×波特率×EPA預(yù)置值)。其中:FXTAL為XTAL1腳的輸入頻率,單位為Hz。
SAMPTIME:只用于異步接收多數(shù)采樣方式,用來指定采樣時(shí)間間隔,由下式計(jì)算:FXTAL×Tsam/2-9。其中,Tsam為采樣間隔時(shí)間(μs);FXTAL同上,但單位為MHz。
2 利用EPA和PTS實(shí)現(xiàn)串行通信
2.1 基本思想
利用EPA和PTS實(shí)現(xiàn)串行通信的基本思想是:首先,選擇一個(gè)EPA捕獲/比較模塊作為串行通信的接收模塊,選擇一個(gè)獨(dú)立比較模塊(或選擇一個(gè)捕獲/比較模塊而只利用其比較方式)作為串行通信的發(fā)送模塊,構(gòu)成串行通信的硬件端口。然后,對(duì)所選的EPA模塊開辟相應(yīng)的PTS通道,根據(jù)通信要求編寫發(fā)送和接收PTS模塊。EPA和PTS兩者聯(lián)合工作共同實(shí)現(xiàn)串行通信。
2.2 應(yīng)用實(shí)例及具體實(shí)現(xiàn)
下面以常用的異步串行通信方式為例介紹具體的實(shí)現(xiàn)原理和方法。本例用一個(gè)EPA捕獲/比較模塊CAPCOMP0產(chǎn)生移位時(shí)鐘,P2.O作發(fā)送端(TXD),波特率為9 600 bps,8位數(shù)據(jù)位,無校驗(yàn)位,1位停止位,用定時(shí)器1作時(shí)基,16MHz晶振。由于篇幅所限,僅介紹異步串行發(fā)送。
2.2.1 建立并定位控制塊
要利用PTS實(shí)現(xiàn)串行通信,必須首先定義相應(yīng)的控制塊,并將其定位于能被8整除的首地址處;還要將控制塊地址賦給PTS向量。具體實(shí)現(xiàn)代碼如下:
2.2.2 發(fā)送初始化及PTS中斷子程序
在發(fā)送時(shí),要用到EPA中的一個(gè)比較模塊,或者使用一個(gè)捕獲/比較模塊而使其工作于比較方式下,主要用作發(fā)送時(shí)產(chǎn)生移位時(shí)鐘,以保證指定的位周期。其具體過程如下:首先,在指定的發(fā)送引腳上產(chǎn)生一個(gè)下降沿(為確保產(chǎn)生下降沿,應(yīng)先對(duì)該引腳置1),并根據(jù)指定的波特率對(duì)EPA比較模塊的時(shí)間寄存器(CAPCOMPx_TIME或COMPx_TIME)置值,以指定發(fā)送的位周期。然后,打開中斷和PTS功能,啟動(dòng)數(shù)據(jù)發(fā)送過程;以后每隔一個(gè)位周期便會(huì)產(chǎn)生一個(gè)PTS周期,在每個(gè)PTS周期中,將DATA寄存器中的數(shù)據(jù)逐位移到指定的發(fā)送腳上,直到最后一位移出后,產(chǎn)生一次End_of_PTS中斷,該幀數(shù)據(jù)發(fā)送完畢。每幀數(shù)據(jù)的位數(shù)在控制塊的ptscount中指定。如果需要繼續(xù)發(fā)送數(shù)據(jù),就要在中斷服務(wù)程序中對(duì)PTSCB、EPA時(shí)間寄存器和相應(yīng)引腳重新初始化,再次啟動(dòng)發(fā)送過程。發(fā)送數(shù)據(jù)保存在transmit數(shù)組中,發(fā)送幀數(shù),即數(shù)據(jù)個(gè)數(shù)由T_Count控制。具體實(shí)現(xiàn)代碼如下:
結(jié)語
該方法和實(shí)例已在實(shí)際應(yīng)用中得到驗(yàn)證。實(shí)踐證明其完全可以滿足串行通信的需要,而且效率更高,更加靈活。
責(zé)任編輯:gt
-
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213147 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9335瀏覽量
86134 -
智能儀器
+關(guān)注
關(guān)注
1文章
54瀏覽量
15114
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
通過SCI實(shí)現(xiàn)串行通信
EPA通信調(diào)度測(cè)試方法與實(shí)現(xiàn)技術(shù)
EPASafety——基于EPA的功能安全通信規(guī)范
基于EPA通信標(biāo)準(zhǔn)的OPC服務(wù)器研究
EPA 通信協(xié)議在μC/OS-II嵌入式系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)
PC 機(jī)與PLC 串行通信的實(shí)現(xiàn)
EPA閥門定位器通信卡設(shè)計(jì)
實(shí)現(xiàn)FPGA與PC的串行通信
![<b class='flag-5'>實(shí)現(xiàn)</b>FPGA與PC的<b class='flag-5'>串行</b><b class='flag-5'>通信</b>](https://file1.elecfans.com//web2/M00/A4/31/wKgZomUMMxWAcRL_AAAj4qXKvKo453.jpg)
DELPHI串行通信編程技術(shù)與實(shí)現(xiàn)
![DELPHI<b class='flag-5'>串行</b><b class='flag-5'>通信</b>編程技術(shù)與<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web2/M00/49/1E/pYYBAGKhtDmAQbd6AAAO4p7oCCE651.jpg)
基于ARM的EPA通信協(xié)議棧優(yōu)化技術(shù)的研究與實(shí)現(xiàn)
![基于ARM的<b class='flag-5'>EPA</b><b class='flag-5'>通信</b>協(xié)議棧優(yōu)化技術(shù)的研究與<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web2/M00/49/29/pYYBAGKhtDyAMAjyAAAPnHB3bJ4299.jpg)
基于Windows CENET的串行通信的實(shí)現(xiàn)
基于AT91R40008芯片和μC/OS-II實(shí)現(xiàn)EPA交換機(jī)的設(shè)計(jì)
![基于AT91R40008芯片和μC/OS-II<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>EPA</b>交換機(jī)的設(shè)計(jì)](https://file.elecfans.com/web1/M00/EC/AD/pIYBAGCDeqCAfSq9AACSaWXknlg788.png)
評(píng)論