<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > SX系列通信控制器

          SX系列通信控制器

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘要:介紹SX系理單片機的性能、內(nèi)部結(jié)構(gòu)、端口特性和存儲器體系結(jié)構(gòu),說明虛擬外設(shè)這一新的其廣闊的應(yīng)用前景。SX系列單片機具有高速運行和靈活的I/O特性,可作為一個嵌入式設(shè)備應(yīng)用在通信類的產(chǎn)品設(shè)計中。

          本文引用地址:http://www.ex-cimer.com/article/244626.htm

          關(guān)鍵詞:嵌入式Internet設(shè)備 RISC結(jié)構(gòu) 配置端口狀態(tài) 存儲器體系結(jié)構(gòu) 虛擬外設(shè)

          SX52BD(以及SX48BD)是SX系列產(chǎn)品,是采用CMOS工敢制造的、可配置的通信控制器。它的操作頻率可達到50/75/100MHz,是一種高速計算機;其大部分指令為單周期指令,運行速度可達到一般MCU的20倍;靈活的I/O特性使之具有高效的實時控制功能。正因為它的高速運行特性,設(shè)備可以用軟件模塊(虛擬外設(shè))替代一部分過去由硬件實現(xiàn)的實時功能,這是SX系列的最重要的特點。目前可以實現(xiàn)的虛擬外設(shè)大多用于通信設(shè)備,如通信接口和Internet連接協(xié)議等。下面主要從它的硬件結(jié)構(gòu)進行說明。

          1 主要性能和特點

          ①CPU性能?;赗ISC結(jié)構(gòu),采用壓縮的指令系統(tǒng),除branch外大部分為單周期指令;操作頻率最高可達100MHz,此時指令周期10ns,內(nèi)部中斷響應(yīng)時間達30ns;可以通過運行時間內(nèi)讀代碼(IREAD指令)進行快速平臺查找;它能克服一般MCU運行速度慢的缺點,使得SX系列的內(nèi)部程序達到硬件實時控制功能的目的。

          ②硬件外設(shè)特性。內(nèi)部包含2個(帶8位預(yù)定標器的)16位定時器,運行方式有軟件時鐘模式、PWM模式、同步PWM/捕捉模式以及外部事件模式;有一個(帶8位預(yù)定標器的)可編程的8位定時/計數(shù)器(RTCC)和看門狗計時器(共享RTCC預(yù)定標器);內(nèi)部包含模擬比較器,這對于一般的應(yīng)用來說顯得十分方便。

          ③由于SX系列高速運行特性,再加上靈活的I/O功能,設(shè)備就可以用軟件模塊(虛擬外設(shè))代替那些硬件所具有的準確的實時功能。目前可以實現(xiàn)的虛擬外設(shè)大多用于通信設(shè)備(例如通信接口和Internet連接協(xié)議等)以及作為運行速度比較高的信號發(fā)生裝置和轉(zhuǎn)換裝置。

          ④編程和調(diào)試支持??梢酝ㄟ^串口或并口對芯片進行在線編程(例如可以接振蕩器引腳進行在線串行編程),芯片具有在線調(diào)試支持邏輯。對于實時仿真、全程調(diào)試,可以由第三工具供應(yīng)商提供完備的開發(fā)環(huán)境。這些軟件支持包括:即時可用的虛擬外設(shè)模塊庫、虛擬外設(shè)綜合實例以及用于通信的應(yīng)用軟件工具包等。

          SX設(shè)備在襯能夠提供新的思路和解決辦法,一方面它可對應(yīng)用于一些常規(guī)的設(shè)備,如:過程控制器、電子設(shè)備/工具、安全/監(jiān)視系統(tǒng)、汽車用戶、動力控制系統(tǒng)、私人通信設(shè)備等等;另一方面,SX通信控制器為SX堆棧的硬件平臺,它能實現(xiàn)執(zhí)行整個TCP/IP協(xié)議、物理層及其它相關(guān)的高速通信層——虛擬外設(shè)模塊。邊疆的虛擬外設(shè)庫也在不斷擴大應(yīng)用范圍,如:Internet協(xié)議堆棧、通信接口的出現(xiàn)都使設(shè)計師就能將一些產(chǎn)品嵌入Internet。它的整個網(wǎng)絡(luò)連接協(xié)議堆棧工具能使單片網(wǎng)絡(luò)服務(wù)器和E-mail設(shè)備在嵌入式場合中應(yīng)用。平些工具包括TCP/IP網(wǎng)絡(luò)連接協(xié)議、物理層及其它的相關(guān)的高速通信層——虛擬外設(shè)模塊。它的虛擬外設(shè)庫也在不斷擴大應(yīng)用范圍,如:Internet協(xié)議堆棧、通信接口的出現(xiàn)都使設(shè)計師就能將一些產(chǎn)品嵌入Internet。它的整個網(wǎng)絡(luò)連接協(xié)議堆棧工具能使單片網(wǎng)絡(luò)服務(wù)器和E-mail設(shè)備在嵌入式場合中應(yīng)用。這些工具包括TCP/IP網(wǎng)絡(luò)連接協(xié)議的物理層界面,使系統(tǒng)設(shè)計師能開發(fā)出一些成本低廉的嵌入式Internet設(shè)備,而不必用到外部的物理通路或PC網(wǎng)關(guān)。

          2 電路結(jié)構(gòu)

          圖1所示為SX系列產(chǎn)品的內(nèi)部結(jié)構(gòu)框圖??梢钥吹絊X系列產(chǎn)品內(nèi)部使用了2個獨立的具有不同地址總線的存儲器,一個用于程序,另一個用于數(shù)據(jù),兩者是嚴格區(qū)分開的。它允許數(shù)據(jù)同時從程序存儲流至SRAM,能從程序存儲器訪問數(shù)據(jù)表格。這一結(jié)構(gòu)的優(yōu)點為:取指為存儲傳送可通過多層通道交替進行。這意味著在執(zhí)行當前指令的同時,能獲取從程序存儲器傳來的下一條指令。實際上這是一種基于RISC的結(jié)構(gòu),其存儲器設(shè)計工藝可使設(shè)備比傳統(tǒng)的MCU塊20倍,且能準確自由振蕩及可完成編程。SX系列產(chǎn)品采用4個階段傳遞(接收-解碼-執(zhí)行-寫入),所以每一時鐘周期執(zhí)行1條指令。當最大操作頻率達到100MHz時,指令以每10ns的時鐘周期運行。

          程序存儲器采用EEPROM或Flash,片內(nèi)容量為4 096字節(jié),在使用中重復(fù)寫周期可大于10 000次以上;而數(shù)據(jù)存儲器是SRAM,片內(nèi)容量為262×8位。

          SX系列芯片的引腳中大部分都是I/O端口,其中A、B、C、D、E為并行雙向I/O端口。這5個8位端口都可以進行I/O編程,既可以作為輸入端口也可以作為輸出端口。選擇作為輸入端口使用時,可以按TTL電平或CMOS電路電平標準選擇,對于外圍電路的接口顯得非常方便。B、C、D、E端口還可選擇施密特觸發(fā)器輸入的形式,尤其是外部信號不太穩(wěn)定的情況下這種選擇很實用。此外,B端口可編程選擇作為模擬比較器(RB0為輸出,RB1為負輸入,RB2為正輸入)對2個模擬信號進行比較。在端口用于輸出的情況下,全部輸出口具有30mA灌入電流能力,作為輸出端口全部引腳有可選擇的內(nèi)部上拉電阻,或者選擇外接電阻的形式,使得輸出驅(qū)動更加方便。由此可以看到,端口結(jié)構(gòu)靈活的特性有助于實現(xiàn)SX系列的虛擬外設(shè)功能和用在一些特殊場合。

          除了上面的顯著特點外,它的接口部分還包括以下部分:2個帶8位預(yù)定標器的16位定時器,可支持不同的操作模式(PWM模式、同步PWM/捕捉模式以及外部事件計數(shù)器模式);1個帶預(yù)定標器的通用的8位定時器,1個模擬比較器,1個brownout檢測器及看門狗定時器;具有一種多源喚醒功能的節(jié)點模式,端口B(8個引腳)上有喚醒/中斷功能;1個內(nèi)部RC振蕩器,可供用戶選擇時鐘模式,RC內(nèi)部振蕩器可調(diào)范圍為31.25kHz~4MHz。

          目前SX系列中有SX48BD和SX52BD兩種產(chǎn)品,除了引腳封裝形式不同外其它功能基本相同。從圖2的2種電路外形圖可以看出:SX48BD為48腳封裝,SX52BD為52腳封裝。它們的區(qū)別是A端口不同:后者有8個I/O引腳,而前者卻只有4個。

          3 端口特性

          由圖2可以看到SX系列都有5個8位的I/O端口(即端口A~端口E),其中端口A的情況與其它4個端口有些區(qū)別。圖3給出了端口A內(nèi)部的情況:硬件結(jié)構(gòu)及端口每個引腳的配置寄存器的情況。端口A提供對稱的驅(qū)動能力。在48腳的SX48BD器件中,端口A只有4個引腳(而不是8個引腳)。每個端口有4個相對應(yīng)的8位寄存器(即方向、數(shù)據(jù)、TTL/CMOS選擇以及上拉允許寄存器)用于配置端口引腳的狀態(tài)。如:選擇高阻輸入或輸出,或選擇TTL或CMOS電壓電平,或選擇接入/關(guān)斷上拉電阻。接照端口引腳最低位與寄存器的最低位相對應(yīng)的關(guān)系,要訪問這些配置寄存器,還必須同時將合理的值寫入MODE(方式)寄存器中。

          開機時,寄存器中所有位初始化為“1”。在軟件的控制下,相關(guān)的寄存器對各個端口位進行配置,如圖4所示。

          與端口A的情況不同的是,端口B、C、D和E還有額外相關(guān)的寄存器(施密特觸發(fā)允許寄存器),能允許或禁止各個端口引腳上的施密特觸發(fā)器起使用。端口B支持芯片上的微分比較器,RB1端口和RB2端口分別是比較器的負、正輸入腳,RB0端口則是比較器的輸出引腳。另外,端口B還支持所有8個引腳上的多重輸入喚醒功能。端口B和C還支持多功能定時器T1和T2;RB4和RB5是T1是捕捉輸入引腳,RB6是T1的PWM輸出引腳;RB7是T1的外部事件計數(shù)器輸入引腳;同樣地,RC0和RC1是T2的捕捉輸入引腳,RC2是T2的PWM輸出引腳,RC3是T2的外部事件計數(shù)器輸入引腳。圖5給出了端口B、C、D、E的硬件結(jié)構(gòu)及相應(yīng)端口每個引腳的配置寄存器。

          4 存儲器體系結(jié)構(gòu)

          程序存儲器——由4K個12位寬度的字組成。程序存儲字由二進制程序計數(shù)器編址。復(fù)位時,程序計數(shù)器初始化為0FFFH。假如沒有分支操作,它將會增至設(shè)備的最大值且循環(huán)往復(fù),1個頁面由512個相鄰的程序存儲字組成。在一頁的首址,程序計數(shù)器的低9位均為“0”;而在該頁的末址,程序計數(shù)器的低9位均為“1”。這種頁面結(jié)構(gòu)對程序計數(shù)器無任何影響,程序計數(shù)將能通過頁間繼續(xù)增加。

          程序計數(shù)器——包含有執(zhí)行指令的12位地址,低8位存儲在PC寄存器中(02h),而3個高位由狀態(tài)寄存器STATUS(PA0、PA1、PA2)指定,第8位不用。改變狀態(tài)位將導(dǎo)致通過程序存儲頁間跳轉(zhuǎn)和調(diào)用子程序,要優(yōu)先執(zhí)行轉(zhuǎn)移(branch)操作時,用戶程序須初始化狀態(tài)寄存器的高位,以轉(zhuǎn)移到期望的頁面。另一種方式是使用“頁”指令,它按照操作數(shù)的特定值自動地址轉(zhuǎn)移到期望的頁面。

          子程序堆棧——包含8個12位存儲寄存器。在寄存器內(nèi)容的物理轉(zhuǎn)移(如從程序計數(shù)器到堆棧,或者與此相反方向以及在堆棧內(nèi)部)操作中規(guī)章能影響堆棧,尤其是調(diào)用和返回操作。堆棧在物理上和邏輯上均與數(shù)據(jù)RAM分離,程序不能對堆棧進行讀和寫。

          數(shù)據(jù)存儲器——是一個基于RAM的寄存器,包括262個常用寄存器以及9個特殊功能寄存器,所以這些寄存器均為8位寬。數(shù)據(jù)存儲器分16層,從0~F。每個層包含有16個寄存器,另加1個由16個“全局的”寄存器組成額外層。由于這些寄存器由層及“文檔”組成,故這些存儲映射寄存器被稱之為“文檔寄存器”。

          尋址方式——每個訪問數(shù)據(jù)存儲存儲器的SX指令,都包含有1個5位操作碼指令,用于指明對哪一個寄存器進行訪問??s寫“fr”(文檔寄存器),代表5位寄存器地址標志符。例如:在“mov fr,W”指令中,“fr”代表1個5位的值或標志,如“mov $ OF,W”指令(將工作寄存器W中內(nèi)容移入至文檔寄存器0Fh)。

          有3種不同的尋址方式:間接尋址、直接尋址、半直接尋址。對寄存器尋址模式的選取依賴于指令中5位“fr”的值,例如:

          *間接模式:fr=00h

          *直接模式:(fr bit 4=0)fr=01h-0Fh

          *半直接模式:(fr bit 4=1)fr=10h-1Fh

          在圖6中描述了數(shù)據(jù)存儲器的結(jié)構(gòu)圖。

          對于間接尋址模式(fr=00),文檔選擇寄存器(FSR)指定需訪問的寄存器。FSR是一個8位存儲映射寄存器(地址為04h)。在間接尋址中,它作為一個指向數(shù)據(jù)存儲器的8位指針。在這種模式下,全局寄存器層及層1~層F均可用,而層0不可用。

          對于直接尋址(fr=01-0F),“fr”的值自身已指明需訪問的寄存器,而FSR寄存器被忽略。對于這種尋址模式,只有全局寄存器層才被訪問,若要訪問任何其它的層,必須使用間接或半直接尋址。

          對于半直接尋址(fr=10-1F),層數(shù)由FSR的4個高位選擇;而在層內(nèi)的寄存器由“fr”的低4位決定,也就是說,寄存器地址由FSR的4個高位和“fr”的4個低位共同來決定。在這種選址模式下,F(xiàn)SR的低位被忽略,從0號層~F層均可訪問,但是全局寄存器層不可訪問。

          圖6列出了寄存器在間接、直接和半直接模式下怎樣進行尋址。不管FSR寄存器中為何值,在直接尋址時,16個全局寄存器均可訪問。全局寄存器在間接尋址模式下亦可進行訪問,但在半直接模式下,不可訪問。在這16個全局寄存器中,9個為特定功能寄存器(RTCC、PC、STATUS等等),6個為全局寄存器。00被用于間接尋址(INDF)。從0號層~F層的所有寄存器均為全局寄存器。要改變FSR寄存器中的值,程序既可在FSR寄存器寫出8位值,又可用“層”指令。層指令可寫FSR寄存器的4、5及6位,而7號位被用于選擇存儲層的高層或低層。因此,若要改變上部層至另一個上部層,只需使用一個“層”指令;若要改變上層至下層,則“層”指令后面必須用“setb FSR.7”指令。

          5 虛擬外設(shè)的概念

          虛擬外設(shè)的概念使“芯片軟件系統(tǒng)”得以實現(xiàn),即用軟件模塊代替?zhèn)鹘y(tǒng)的硬件外圍設(shè)備,達到與硬件設(shè)備一樣的功效。由于運用虛擬外設(shè)庫以及良好的速度和靈活性,為工程和產(chǎn)品開發(fā)提供了廣闊的道路。它能大大地降低產(chǎn)品開發(fā)周期,縮短產(chǎn)品研制周期。虛擬外設(shè)庫能為系統(tǒng)設(shè)計師提供一些預(yù)定的方案,或在開發(fā)外設(shè)時為系統(tǒng)設(shè)計師提供先入之見。有了虛擬外設(shè)支持的功能后,設(shè)計師只要專注于其它的應(yīng)用場合。由于標準和協(xié)議的不斷發(fā)展,虛擬外設(shè)與在線重復(fù)編程能力結(jié)合起來為通信行業(yè)提供了有力的開發(fā)前景。概括地說,虛擬外設(shè)有以下優(yōu)點:使用設(shè)備簡單、能減少元件數(shù)目、打入市場快、增加設(shè)計靈活性、與大多數(shù)機器兼容降低整個系統(tǒng)的成本。

          可以實現(xiàn)的虛擬外設(shè)實例有:

          *一些通用的通信接口如:I2C、微總線(μ級總線)、SPI、IrDA棧、UART以及調(diào)制解調(diào)器功能。

          *Internet連接協(xié)議,如:UDP、TCP/IP、HTTP、SMTP、POP3等;

          *頻率信號產(chǎn)生和調(diào)試;

          *PPM/PWM的產(chǎn)生;

          *Δ-∑ADC;

          *DTMF產(chǎn)生/檢測;

          *FFT/DFT算法。

          由于SX系列硬件結(jié)構(gòu)和虛擬外設(shè)概念的結(jié)構(gòu),為通信開發(fā)部門提供了一個強大的、靈活的開發(fā)平臺;由于它具有高度的處理能力、靈活多變的結(jié)構(gòu),使之有比較高的成本效益。強大的開發(fā)能力能使設(shè)計師有足夠信心緊跟標準以及許多領(lǐng)域內(nèi)的革新,開發(fā)出大量的未來通信控制產(chǎn)品。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();