AT91RM9200理器同步串口SSC的特性分析與應(yīng)用
1 引言
電信網(wǎng)和因特網(wǎng)是兩大網(wǎng)絡(luò)系統(tǒng),必然存在兩個網(wǎng)絡(luò)數(shù)據(jù)或信息的互通問題,例如:VoIP、混合視頻會議等新業(yè)務(wù)。E1接口和以太網(wǎng)接口分別是電信網(wǎng)和因特網(wǎng)使用最為普遍的接入端口,設(shè)計(jì)一個嵌入式網(wǎng)關(guān)設(shè)備,通過這兩種端口將兩大網(wǎng)絡(luò)連接起來就顯得尤為迫切、重要。本文介紹的AT91RM9200處理器處理能力強(qiáng)、接口豐富,內(nèi)部集成了同步串口和以太網(wǎng)接口,是嵌入式小型網(wǎng)關(guān)控制器的理想選擇。
2 AT91RM9200和DS21554
AT91RM9200內(nèi)部集成了一個ARM920T—ARM Thumb處理器,在180 MHz時鐘時運(yùn)行速度高達(dá)200 MI/s;內(nèi)部有16 KB的數(shù)據(jù)Cache、16 KB指令Cache、寫緩沖區(qū)、全功能的MMU(存儲器管理單元);片內(nèi)帶有調(diào)試通道的仿真器、16 KB的SRAM和128 KB的ROM,支持SDRAM、SRAM、Burst Flash,無縫連接CompactFlashTM,SmartMediaTM和NAND Flash;增強(qiáng)型的時鐘產(chǎn)生器和電源管理控制器,包括周期性中斷、看門狗和帶有報警中斷的實(shí)時時鐘;帶有8個優(yōu)先級、可單個屏蔽中斷源、7個外部中斷源和一個快速中斷源;122個可編程I/O引腳(多功能復(fù)用);20通道DMA(直接存儲器存取)控制器;10/100 Base-T型以太網(wǎng)控制器及介質(zhì)無關(guān)接口MII,全速USB 2.0接口(12 Mb/s,2主1從),3個同步串行控制器(SSC),4個通用同步/異步串口(USART),主機(jī)/從機(jī)串行外設(shè)接口(SPI),兩線接口(TWI),兩個3通道16位定時/計(jì)數(shù)器(TC)。超強(qiáng)的處理能力和豐富的接口使得該處理器廣泛應(yīng)用于各種嵌入式通信和控制系統(tǒng)中,尤其是同步串口和以太網(wǎng)接口,使其可以作為網(wǎng)關(guān)設(shè)備核心處理器。
電信網(wǎng)中數(shù)據(jù)以TDM(時分復(fù)用)形式傳輸,采用E1幀結(jié)構(gòu),相應(yīng)網(wǎng)絡(luò)接口包括電氣接口和幀結(jié)構(gòu),符合ITU-T的G.703/G.704規(guī)范或者國標(biāo)GB7611。DS21554是一個符合該規(guī)范的E1成幀器集成電路,內(nèi)部集成了線路接口和成幀器,其主要性能有:符合規(guī)范的完整PCM30/32 E1收發(fā)器:內(nèi)含一個64 KB緩沖器的HDLC控制器;8 bit并行控制器接口;提供隨路信令(CAS)、共路信令(CCS)和CRC4幀格式;回環(huán)測試功能;HDB3編碼的線路接口等。線路接口支持75 Ω同軸電纜或者120 Ω雙絞線連接;背板接口可以根據(jù)需要在主、從模式下工作,提供同步接收、發(fā)送數(shù)據(jù)信號(RSER/TSER),收發(fā)幀定位信號(RSYNC/TSSYNC),收發(fā)時鐘信號(RSYSCLK/TSYSCLK);四個DS21554可以實(shí)現(xiàn)背板信號菊花鏈連接,提供8192 KB/s字節(jié)復(fù)用同步數(shù)據(jù)流。
3 SSC特性分析
AT91RM9200提供三個獨(dú)立的同步串行控制器(SSC)與外部器件進(jìn)行同步通信。它支持音頻和電信應(yīng)用中常用的串行同步通信協(xié)議,如I2S、短幀同步、長幀同步方式等。
每個SSC包含獨(dú)立的接收器、發(fā)送器以及一個時鐘分頻器。發(fā)送器/接收器分別有三個信號引腳:數(shù)據(jù)TD/RD信號、時鐘TK/RK信號及幀同步。TF/RF信號,由于這些引腳與通用I/O引腳復(fù)用,初始化程序必須配置使其在SSC模式下工作;每幀最多由16個32位字組成,可編程設(shè)定為自動啟動或在幀同步信號檢測到不同事件時啟動。SSC與內(nèi)部兩個32位專用外設(shè)數(shù)據(jù)直接存取控制器PDC(Pe-ripheral DMA Controller)通道連接,可在沒有處理器干涉的情況下進(jìn)行連續(xù)的高速率數(shù)據(jù)傳輸。初始化程序配置使每幀為16個16位半字即每幀32字節(jié),與E1幀對應(yīng);串口發(fā)送/接收時鐘由其工作模式?jīng)Q定,從模式時,TK/RK和TF/RF均為輸入端子,由外部提供時鐘和幀定位型號。主模式時,TK/RK和TF/RF均為輸出端子,對E1成幀器提供時鐘和幀定位信號,此時,時鐘信號TK/RK來源非常靈活。
內(nèi)部發(fā)送時鐘TCLK(接收時鐘RCLK)來源非常靈活,可以來自處理器主時鐘MCK經(jīng)SSC分頻后得到的分頻時鐘D_CLK、TK引腳(RK引腳)或者RCLK(TCLK),如圖1所示。處理器內(nèi)部主時鐘MCK通過初始化程序配置時鐘選擇器、預(yù)分頻器和分頻器得到MCK,再經(jīng)過SSC分頻器使得分頻時鐘D_CLK為2.048 Mb/s,如圖2所示。主模式下幀定位信號TF/RF也非常靈活,通過配置相關(guān)寄存器,可以使其為正脈沖或者負(fù)脈沖,脈沖寬度可以調(diào)節(jié),與發(fā)送/接收信號的相位關(guān)系也可以靈活調(diào)整,能夠與標(biāo)準(zhǔn)的E1成幀器背板信號直接連接。數(shù)據(jù)流中可以發(fā)送或者接收一個特定標(biāo)記數(shù)據(jù)(幀同步數(shù)據(jù)),類似于E1幀結(jié)構(gòu)中的幀同步數(shù)據(jù)。每幀起始位置可以通過寄存器設(shè)置,幀脈沖生效后,數(shù)據(jù)起始位置與時鐘信號有關(guān),主要有4種模式:連續(xù)、TK/RK上升或下降沿觸發(fā)、TK/RK高或低電平觸發(fā)、TK/RK電平變化或沿跳變觸發(fā),如圖3所示,接收起始模式與發(fā)送類似。
發(fā)送數(shù)據(jù)或者接收數(shù)據(jù)幀格式由發(fā)送器幀模式寄存器(SSC_TFMR)以及接收器幀模式寄存器(SSC_RFMR)編程設(shè)定,可以分別設(shè)置的參數(shù)有:
啟動數(shù)據(jù)傳輸條件;
幀脈沖前沿到第一個數(shù)據(jù)位的延時;
數(shù)據(jù)長度(DATLEN);
每幀傳輸?shù)臄?shù)據(jù)數(shù)(DATNB);
幀同步數(shù)據(jù)寄存器長度(FSLEN);
比特意義:高位或低位在前(MSBF)。
上述設(shè)置可以配置SSC同步串口每幀長度最大為512位長,由于E1幀格式每幀固定長度8×32位=256位,因此,配置適當(dāng)SSC相關(guān)寄存器不僅可以保證SSC同步串口與E1接口時鐘、幀脈沖、收/發(fā)數(shù)據(jù)等時序一致,而且數(shù)據(jù)幀格式也能保持一致。
專用外設(shè)數(shù)據(jù)直接存取控制器PDC(PeripheralDMA Controller)用于UART、USART、SSC、SPI、MC等片上串行外設(shè)與片內(nèi)、片外存儲器間傳輸數(shù)據(jù)。使用外設(shè)數(shù)據(jù)直接存取控制器能夠提高數(shù)據(jù)傳輸能力,減輕處理器運(yùn)行負(fù)擔(dān)。這樣顯著降低了外設(shè)與存儲器之間數(shù)據(jù)傳輸所需的時鐘周期數(shù),因此也提高了微控制器的性能,使處理器工作更有效。PDC通道是成對構(gòu)建的,每對對應(yīng)一個指定的外設(shè)。通道中一個負(fù)責(zé)接收、另一個負(fù)責(zé)發(fā)送。PDC用戶接口集成在每個外設(shè)存儲空間中,它包括:1個32位存儲器指針寄存器、1個16位傳輸計(jì)數(shù)寄存器、1個32位寄存器(用作下個存儲器指針)、1個16位寄存器(用作下個傳輸計(jì)數(shù))。
外設(shè)使用發(fā)送與接收信號觸發(fā)PDC傳輸,在傳輸數(shù)據(jù)過程中,相應(yīng)的外設(shè)產(chǎn)生一個傳輸結(jié)束中斷請求結(jié)束本次傳輸。三個獨(dú)立的SSC同步串口對應(yīng)三對PDC。
PDC與SSC傳輸數(shù)據(jù)特性為:存儲器到SSC的傳輸需一個主機(jī)時鐘周期,SSC到存儲器間的傳輸需兩個主機(jī)時鐘周期。
配置PDC通道可以控制各個通道的數(shù)據(jù)傳輸,PDC通道的用戶接口集成在與其對應(yīng)的SSC外設(shè)接口上(偏移0x100)。
每個SSC包含4個32位指針寄存器(RPR、RNPR、TPR及TNPR)與4個16位計(jì)數(shù)寄存器(RCR、RNCR、TCR及TNCR)。緩沖器的大小(傳輸數(shù)據(jù)數(shù)量)在內(nèi)部16位傳輸計(jì)數(shù)寄存器中配置,可在任意時刻讀取每個通道待傳輸數(shù)據(jù)的大小。通過定義存儲器訪問的首地址位置,在32位存儲器指針配置存儲器基地址,可在任意時刻讀取下一次傳輸?shù)拇鎯臻g位置和待傳輸?shù)臄?shù)目。PDC有專門的狀態(tài)寄存器指示各通道傳輸是否使能,各通道工作狀態(tài)指示位于SSC狀態(tài)寄存器中。設(shè)置PDC傳輸控制寄存器的TXTEN/TXTDIS與RXTEN/RXTDIS位可使能和(或)禁用傳輸,這些控制位使能時,可以安全讀取指針及計(jì)數(shù)寄存器,在讀取的過程中不會有危險。
每個PDC通道有一個內(nèi)部的32位存儲器指針,每個存儲器指針可指向存儲空間的任意位置(片上存儲器或外部總線接口存儲器)。根據(jù)傳輸類型的不同(字節(jié)、半字或字),外設(shè)傳輸?shù)拇鎯ζ髦羔樢?、2或4增加。若PDC工作時對存儲器指針重新編程,傳輸?shù)刂犯淖?,在新地址?zhí)行PDC傳輸。
每個PDC通道有一個內(nèi)部16位傳輸計(jì)數(shù)器用來計(jì)算已傳輸塊的大小。每次數(shù)據(jù)傳輸完成后計(jì)數(shù)器減一。當(dāng)計(jì)數(shù)器到零時,傳輸完成,PDC停止傳輸數(shù)據(jù)。若下一個計(jì)數(shù)寄存器(Next Counter Regis-ter)等于零,PDC禁用觸發(fā)并激活相關(guān)的外設(shè)結(jié)束標(biāo)志。若PDC工作時修改計(jì)數(shù)器值,PDC使用新值開始計(jì)數(shù)。每個通道中,有兩個狀態(tài)位來標(biāo)識傳輸結(jié)束,這些位直接映射到外設(shè)狀態(tài)寄存器。當(dāng)寫入一個計(jì)數(shù)器寄存器(計(jì)數(shù)器或下次計(jì)數(shù)器)時,外設(shè)結(jié)束標(biāo)志自動清零。
當(dāng)SSC接收到一個外部字符時,它向PDC發(fā)送一個接收就緒信號,PDC再向系統(tǒng)總線請求訪問,當(dāng)訪問得到許可,PDC開始讀取外設(shè)接收保持寄存器(RHR)并觸發(fā)存儲器寫操作。每次傳輸后,相關(guān)PDC存儲器指針遞增,而待傳輸數(shù)目遞減。當(dāng)達(dá)到存儲器塊大小時,向外設(shè)發(fā)送一個信號并停止傳輸。對于發(fā)送數(shù)據(jù)傳輸,處理過程與上述相反。
4 同步串口SSC的典型應(yīng)用
SSC同步串口特性決定了AT91RM9200不僅可以用于工業(yè)控制領(lǐng)域,而且可以很方便地用于電信設(shè)備。它能夠直接與I2S總線接口的音頻編解碼器、符合電話接口的PCM編解碼器連接,如圖4所示。更主要的是,它可以提供三個獨(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)核心處理器是一個理想的選擇。
在網(wǎng)關(guān)應(yīng)用中,SSC包含獨(dú)立的接收器、發(fā)送器及時鐘分頻器。每個發(fā)送器及接收器分別有3個信號引腳:數(shù)據(jù)TD/RD信號、時鐘TK/RK信號及幀同步TF/RF信號,可以直接與E1成幀器DS21554的背板對應(yīng)信號連接。網(wǎng)關(guān)可以在主、從兩種模式下工作,主模式時,DS21554不需要跟蹤上級同步時鐘;從模式時,跟蹤上級同步時鐘。前者,同步串口SSC不需要單獨(dú)時鐘電路,配置AT91RM9200 SSC寄存器,使SSC接口工作在主動模式,產(chǎn)生時鐘和幀定位信號,提供給DS21554,也可以直接將TK/TF連接到RCK/RSY,同時斷開RK/RF。若為后者,網(wǎng)關(guān)為一個電信系統(tǒng)中的終端,通過配置寄存器使SCC接口工作在被動方式,TK/TF/RK/RF和TCK/TSS/RSS/RCK一樣,均為輸入信號端子,提取接收時鐘,通過鎖相環(huán)同步后產(chǎn)生時鐘和幀定位信號。不論哪種形式,配置時鐘信號均為2 048 kHz,32個時鐘周期出現(xiàn)一個幀定位信號以滿足E1幀格式,參考器件手冊,可以通過調(diào)整DS21554和AT91RM9200寄存器設(shè)置,使得SSC信號時序和E1成幀器背板信號時序匹配。根據(jù)實(shí)際需求,三個SSC同步串口可以同時連接三個E1成幀器,考慮到音視頻數(shù)據(jù)流量和以太網(wǎng)有效吞吐能力,有效數(shù)據(jù)量達(dá)2 Mb/s~6Mb/s,可滿足不同應(yīng)用的音視頻數(shù)據(jù)傳輸,如圖5所示。
5 結(jié)束語
基于ARM內(nèi)核的處理器是目前嵌入式系統(tǒng)的主流,但是,同時內(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)定,可靠性高而且成本低。