AT91RM9200處理器同步串口SSC的特性分析與應(yīng)用
專(zhuān)用外設(shè)數(shù)據(jù)直接存取控制器PDC(PeripheralDMA Controller)用于UART、USART、SSC、SPI、MC等片上串行外設(shè)與片內(nèi)、片外存儲(chǔ)器間傳輸數(shù)據(jù)。使用外設(shè)數(shù)據(jù)直接存取控制器能夠提高數(shù)據(jù)傳輸能力,減輕處理器運(yùn)行負(fù)擔(dān)。這樣顯著降低了外設(shè)與存儲(chǔ)器之間數(shù)據(jù)傳輸所需的時(shí)鐘周期數(shù),因此也提高了微控制器的性能,使處理器工作更有效。PDC通道是成對(duì)構(gòu)建的,每對(duì)對(duì)應(yīng)一個(gè)指定的外設(shè)。通道中一個(gè)負(fù)責(zé)接收、另一個(gè)負(fù)責(zé)發(fā)送。PDC用戶接口集成在每個(gè)外設(shè)存儲(chǔ)空間中,它包括:1個(gè)32位存儲(chǔ)器指針寄存器、1個(gè)16位傳輸計(jì)數(shù)寄存器、1個(gè)32位寄存器(用作下個(gè)存儲(chǔ)器指針)、1個(gè)16位寄存器(用作下個(gè)傳輸計(jì)數(shù))。
外設(shè)使用發(fā)送與接收信號(hào)觸發(fā)PDC傳輸,在傳輸數(shù)據(jù)過(guò)程中,相應(yīng)的外設(shè)產(chǎn)生一個(gè)傳輸結(jié)束中斷請(qǐng)求結(jié)束本次傳輸。三個(gè)獨(dú)立的SSC同步串口對(duì)應(yīng)三對(duì)PDC。
PDC與SSC傳輸數(shù)據(jù)特性為:存儲(chǔ)器到SSC的傳輸需一個(gè)主機(jī)時(shí)鐘周期,SSC到存儲(chǔ)器間的傳輸需兩個(gè)主機(jī)時(shí)鐘周期。
配置PDC通道可以控制各個(gè)通道的數(shù)據(jù)傳輸,PDC通道的用戶接口集成在與其對(duì)應(yīng)的SSC外設(shè)接口上(偏移0x100)。
每個(gè)SSC包含4個(gè)32位指針寄存器(RPR、RNPR、TPR及TNPR)與4個(gè)16位計(jì)數(shù)寄存器(RCR、RNCR、TCR及TNCR)。緩沖器的大小(傳輸數(shù)據(jù)數(shù)量)在內(nèi)部16位傳輸計(jì)數(shù)寄存器中配置,可在任意時(shí)刻讀取每個(gè)通道待傳輸數(shù)據(jù)的大小。通過(guò)定義存儲(chǔ)器訪問(wèn)的首地址位置,在32位存儲(chǔ)器指針配置存儲(chǔ)器基地址,可在任意時(shí)刻讀取下一次傳輸?shù)拇鎯?chǔ)空間位置和待傳輸?shù)臄?shù)目。PDC有專(zhuān)門(mén)的狀態(tài)寄存器指示各通道傳輸是否使能,各通道工作狀態(tài)指示位于SSC狀態(tài)寄存器中。設(shè)置PDC傳輸控制寄存器的TXTEN/TXTDIS與RXTEN/RXTDIS位可使能和(或)禁用傳輸,這些控制位使能時(shí),可以安全讀取指針及計(jì)數(shù)寄存器,在讀取的過(guò)程中不會(huì)有危險(xiǎn)。
每個(gè)PDC通道有一個(gè)內(nèi)部的32位存儲(chǔ)器指針,每個(gè)存儲(chǔ)器指針可指向存儲(chǔ)空間的任意位置(片上存儲(chǔ)器或外部總線接口存儲(chǔ)器)。根據(jù)傳輸類(lèi)型的不同(字節(jié)、半字或字),外設(shè)傳輸?shù)拇鎯?chǔ)器指針以1、2或4增加。若PDC工作時(shí)對(duì)存儲(chǔ)器指針重新編程,傳輸?shù)刂犯淖?,在新地址?zhí)行PDC傳輸。
每個(gè)PDC通道有一個(gè)內(nèi)部16位傳輸計(jì)數(shù)器用來(lái)計(jì)算已傳輸塊的大小。每次數(shù)據(jù)傳輸完成后計(jì)數(shù)器減一。當(dāng)計(jì)數(shù)器到零時(shí),傳輸完成,PDC停止傳輸數(shù)據(jù)。若下一個(gè)計(jì)數(shù)寄存器(Next Counter Regis-ter)等于零,PDC禁用觸發(fā)并激活相關(guān)的外設(shè)結(jié)束標(biāo)志。若PDC工作時(shí)修改計(jì)數(shù)器值,PDC使用新值開(kāi)始計(jì)數(shù)。每個(gè)通道中,有兩個(gè)狀態(tài)位來(lái)標(biāo)識(shí)傳輸結(jié)束,這些位直接映射到外設(shè)狀態(tài)寄存器。當(dāng)寫(xiě)入一個(gè)計(jì)數(shù)器寄存器(計(jì)數(shù)器或下次計(jì)數(shù)器)時(shí),外設(shè)結(jié)束標(biāo)志自動(dòng)清零。
當(dāng)SSC接收到一個(gè)外部字符時(shí),它向PDC發(fā)送一個(gè)接收就緒信號(hào),PDC再向系統(tǒng)總線請(qǐng)求訪問(wèn),當(dāng)訪問(wèn)得到許可,PDC開(kāi)始讀取外設(shè)接收保持寄存器(RHR)并觸發(fā)存儲(chǔ)器寫(xiě)操作。每次傳輸后,相關(guān)PDC存儲(chǔ)器指針遞增,而待傳輸數(shù)目遞減。當(dāng)達(dá)到存儲(chǔ)器塊大小時(shí),向外設(shè)發(fā)送一個(gè)信號(hào)并停止傳輸。對(duì)于發(fā)送數(shù)據(jù)傳輸,處理過(guò)程與上述相反。
4 同步串口SSC的典型應(yīng)用
SSC同步串口特性決定了AT91RM9200不僅可以用于工業(yè)控制領(lǐng)域,而且可以很方便地用于電信設(shè)備。它能夠直接與I2S總線接口的音頻編解碼器、符合電話接口的PCM編解碼器連接,如圖4所示。更主要的是,它可以提供三個(gè)獨(dú)立接口,直接和電信應(yīng)用中的E1接口連接,高性能內(nèi)核ARM920T可處理高速同步數(shù)據(jù)流。因此,借助于內(nèi)部提供的10M/100Mb/s以太網(wǎng)接口,將AT91RM9200作為E1與以太網(wǎng)轉(zhuǎn)換的網(wǎng)關(guān)核心處理器是一個(gè)理想的選擇。
在網(wǎng)關(guān)應(yīng)用中,SSC包含獨(dú)立的接收器、發(fā)送器及時(shí)鐘分頻器。每個(gè)發(fā)送器及接收器分別有3個(gè)信號(hào)引腳:數(shù)據(jù)TD/RD信號(hào)、時(shí)鐘TK/RK信號(hào)及幀同步TF/RF信號(hào),可以直接與E1成幀器DS21554的背板對(duì)應(yīng)信號(hào)連接。網(wǎng)關(guān)可以在主、從兩種模式下工作,主模式時(shí),DS21554不需要跟蹤上級(jí)同步時(shí)鐘;從模式時(shí),跟蹤上級(jí)同步時(shí)鐘。前者,同步串口SSC不需要單獨(dú)時(shí)鐘電路,配置AT91RM9200 SSC寄存器,使SSC接口工作在主動(dòng)模式,產(chǎn)生時(shí)鐘和幀定位信號(hào),提供給DS21554,也可以直接將TK/TF連接到RCK/RSY,同時(shí)斷開(kāi)RK/RF。若為后者,網(wǎng)關(guān)為一個(gè)電信系統(tǒng)中的終端,通過(guò)配置寄存器使SCC接口工作在被動(dòng)方式,TK/TF/RK/RF和TCK/TSS/RSS/RCK一樣,均為輸入信號(hào)端子,提取接收時(shí)鐘,通過(guò)鎖相環(huán)同步后產(chǎn)生時(shí)鐘和幀定位信號(hào)。不論哪種形式,配置時(shí)鐘信號(hào)均為2 048 kHz,32個(gè)時(shí)鐘周期出現(xiàn)一個(gè)幀定位信號(hào)以滿足E1幀格式,參考器件手冊(cè),可以通過(guò)調(diào)整DS21554和AT91RM9200寄存器設(shè)置,使得SSC信號(hào)時(shí)序和E1成幀器背板信號(hào)時(shí)序匹配。根據(jù)實(shí)際需求,三個(gè)SSC同步串口可以同時(shí)連接三個(gè)E1成幀器,考慮到音視頻數(shù)據(jù)流量和以太網(wǎng)有效吞吐能力,有效數(shù)據(jù)量達(dá)2 Mb/s~6Mb/s,可滿足不同應(yīng)用的音視頻數(shù)據(jù)傳輸,如圖5所示。
5 結(jié)束語(yǔ)
基于ARM內(nèi)核的處理器是目前嵌入式系統(tǒng)的主流,但是,同時(shí)內(nèi)置同步串口和10 Mb/s~100 Mb/s以太網(wǎng)接口的ARM處理器為數(shù)卻很少。AT91RM9200處理器集成了同步串口和以太網(wǎng)控制器,是一款高性能處理器。本文重點(diǎn)分析了該處理器的同步串口特性,介紹其具體應(yīng)用。采用此器件,筆者實(shí)現(xiàn)了VoIP網(wǎng)關(guān)設(shè)備,性能穩(wěn)定,可靠性高而且成本低。
評(píng)論