S12XD系列中XGATE協處理器的原理及應用
主要介紹美國Freescale公司開發的功能強大的S12XD系列雙核微處理器,比其前代產品S12D系列增加了XGATE核。XGATE具有處理數據速度快、反應時間短、功耗低等一系列特點,因此在汽車電子領域有著很好的應用前景。
關鍵詞? MC9S12XD系列? XGATE協處理器? 脈沖寬度調制? 串行通信? 排隊管理
1? 概述
美國Freescale公司在推出S12D系列16位單片機后,再次推出了功能更強大的S12XD系列16位單片機。其中,包括MC9S12XD64、MC9S12XDP512、MC3S12XDT256、MC3S12XDG128等。
在處理多任務技術方面,S12XD系列相對16位的S12D系列更具優勢,其表現像32位機一樣。S12XD系列仍然保持著原來頗受歡迎的16位S12D系列MCU的低價格、低功耗、卓越的EMC和有效編碼長度的優勢。
S12XD系列的主要特點是增加了XGATE協處理器。具體來講,XGATE其實就是一個可用C語言編程的,擁有最優化的數據傳輸、邏輯以及位操作指令的指令系統。由于在外部模塊、RAM和I/O口之間提供了一個高速數據傳輸通道,其工作頻率可達到S12D系列的CPU下載總線頻率的2倍。在CPU進行多總線加載數據傳輸時執行一個中斷處理加載的情況下,XGATE就會表現出其優勢。
2? XGATE的總體功能及主要特性
2.1? XGATE的總體功能
當前對許多嵌入式系統的一個挑戰是在非常短的運行時間內同時執行一系列的重要任務。直接存儲器存取模塊(DMA)提供的解決方案是,通過硬件控制使數據利用中斷源來自動地讀或寫。但是,這種方案中在等候下個中斷到來之前通常DMA只執行讀或寫指令,其功能就會被限制。在嵌入式系統中,這樣的中斷事件經常會介入其他的邏輯處理。譬如在把數據移動到最終目的地之前,要介入確認信號或對數據進行修正的處理。因而,一個以DMA支持的中斷經常只能做一部分工作,CPU 會被預留出一部分來通過中斷主程序來完成這些任務。這樣,中斷處理就使CPU 在其他功能的表現方面減弱了。另外,還要有精確的時間要求來保證在系統正常運行的同時來處理復雜的應用程序。
XGATE就是為了提高應用反應速度和減少主CPU的中斷負荷而產生的,通過中斷程序的執行以達到與CPU同時運行的目的。那么XGATE可以用來做什么呢?XGATE被定位于快速中斷處理,可以減少CPU進行中斷處理的負荷。
多數嵌入式應用都要求許多中斷程序來處理簡單的功能,處理器經常以高速率執行任務。通常這些是與接口功能相聯系的,如調速控制器控制反饋及系統與其他部分的通信。XGATE 就是用來幫助CPU處理這些事件的。
XGATE的一個重要的特點就是它的設置雖然非常簡單,但卻允許開發復雜程序。XGATE優于一個智能的DMA控制器,因為它提供一個復雜I/O處理的能力。當XGATE與CPU12X核一起使用時,有一些限制需要考慮,但是不會對XGATE所設計的功能產生影響。
XGATE為應用提供了更高級別的中斷,通過分擔一些服務程序來縮短CPU的工作時間和進程。
2.2? XGATE的主要特性
◆ XGATE是一個協處理器,它可以像主CPU一樣進入并且控制外圍設備;
◆ 從中斷出來后的反應時間短;
◆ 在進入同一個存儲空間前,XGATE要等待主CPU釋放這一空間的所有存儲器;
◆ 當用于較短程序時,XGATE可以提供最好的應用方式;
◆ XGATE只在運行時消耗電源;
◆ XGATE可以實現完成多數通常在主CPU上的功能或者程序,與以前的S12D CPU比較,具有更為強大的處理數據能力。
XGATE很靈活,使用者可以通過這個低功耗的雙核處理器為開發創造新的環境。
2.3? XGATE與主CPU的關系
中斷控制器硬件產生的中斷可以選擇由XGATE或者S12XD CPU來處理。XGATE處理的任何中斷都會減輕主CPU的中斷負荷,并且XGATE完全有能力來處理整個中斷。
從圖1中可以看到,一個開關中斷信號可以指向XGATE或者CPU。如果指向XGATE,它就會執行所要求的程序;當程序完成后,等候下個請求。還能看到有的寄存器可以使XGATE指向一個特殊的中斷,并且中斷優先權的等級被設置到7個級別當中的一個。如果有2個中斷請求同時產生,則處理器就會根據中斷級別的高低來判斷,最高最重要的中斷首先執行。這些中斷等級在S12XD CPU和XGATE中是相同的。
XGATE和CPU完全一樣,是一個支持C編譯器的可編程的核。當中斷源到來時,它開始運行;在完成中斷的任務以后,它會停下來其所有時鐘等候下次事件,以此減少電源消耗。
XGATE是一個協處理器。它可以直接使用,幾乎可以直接進入所有存儲空間。XGATE的創新特點就在于它以獨特的方式連接到MCU所自帶的RAM上。通過交換總線,MCU的內部總線允許交叉進入RAM區。當主CPU全速執行時,訪問RAM只需一半時間,XGATE得以在另外半個時鐘總線周期進入RAM。所以若主CPU不進入RAM的周期內,則XGATE訪問RAM的速度就會是CPU最高速度的2倍。
3? XGATE應用及其工作原理
3.1? 多通道PWM
脈沖寬度調制(PWM)在很多I/O引腳上被MCU的物理硬件很嚴格地限制了,或者說如果需要更多的PWM信號就必須使用軟件來驅動這些脈沖。當需要一個在輸出上實現低功耗的過濾,或者引發中斷時,通常想要一個PWM短周期信號,它就會在主CPU上有很高的占用率。XGATE可以將CPU的占用狀態完全移除,并且可以通過一個單一的硬件定時器運行產生多通道的PWM,這樣可以使MCU源的應用更有效率。在很多的實際應用中,相關的PWM信號產生就是利用了定時器來產生所需要的PWM波形。
3.2??串行通信協議處理
XGATE的另外一個重要功能就是串行通信。這里會接收到含有比較標示符的信息,然后數據會被送到存儲器中的一個適當的區域,這些都是由匹配的標識符和負載數據決定的。
3.3? CAN網關
CAN網關在工業系統中經常遇到的典型形式就是具有2個CAN網絡拓撲。XGATE就可以幫助CPU來實現這個雙CAN網絡的功能。
XGATE可以通過查表提供100%軟件過濾。在每100 μs接收一幀信息(每幀信息包括8字節和29位標識符)的情況下,對8位或者16位MCU來說,這個雙CAN網絡拓撲結構的控制是非常重要的。XGATE可以降低CPU的加載率,CPU處理258字節編碼時就近似于零加載。對于一個6字節數據的CAN信息, XGATE處理每幀編碼大約需要3 μs,最壞的情況下CPU加載率只有6%。
3.4? 積分編碼
很多電機控制應用需要從位置和速度傳感器得到連續輸入的信號。對于體積小、速度快的電機,積分編碼可以提供位置反饋,并且可以產生每秒幾萬個脈沖。如要保持CPU沒有加載,則由XGATE完成該任務,它可以處理兩個傳感器中的一個中斷事件,并提供方向和位置信息。第3個傳感器可以為轉動參考點提供一個索引信號。每次讀2個傳感器輸入任務時會有一個中斷,并且根據后來輸入狀態執行單一向前或者向后計算,用XGATE時只花很少的時間就可以完成這個任務(執行程序所用時間少于0.5 μs)。這是一個理想的表現XGATE特性的例子。
3.5? 同步串行通信
對于一些串行通信,XGATE可以提供簡單的驅動功能。SPI(同步串行通信)在主機模式下操作是很容易完成的,時鐘和數據都可以由XGATE驅動,并且只對一個定時器提供波特率信息。
XGATE也還可以設置SPI從機操作,典型的操作包括在MOSI口收集數據和在MISO口輸出數據,每次傳輸都會在SCLK上接收到時鐘信號。從機SPI執行必須注意,由于錯過半周期時鐘沿而產生錯誤的讀操作會導致向SPI主機返回的數據錯誤。
3.6? 異步串行通信
與SPI一樣,XGATE可以通過直接對口進行位操作或者通用異步收發報機來控制軟件SCI。這個與最初的同步通信功能相似,當然,臨界位的時鐘邊沿是不一樣的。在異步串行通信中XGATE編碼是被嚴格限制的(波特率最大值通常是19 200 b/s)。在最大反應時間情況下必須保持位波特率的20%和總體的2%,也就是每10.4 μs對每位采樣或設置一次。雖然位處理時間是允許變化的,但是在19 200 b/s的波特率下就不會在發送和接收正確的8位數據上產生沖突。
XGATE編碼發送SCI數據需要由一個比較定時器產生的2個定時值:一個是位周期;另一個是斷點檢測時間,通常為多個位周期時間。傳輸1位的程序非常短,只需要設置輸出狀態和改變位的指針。接收數據要求用位周期時間對中間通道進行采樣,這樣就會和以前的中斷分開,就像進入了另一個XGATE中斷,使中斷率加倍。此外,這個程序很短,在最壞的情況下中斷之間(發送/接收,波特率為19 200 b/s)的間隔是26 μs;在XGATE的時鐘程序的影響下(波特率為19 200 b/s),SCI數據的接收和發送之前,允許程序用大約36 μs執行(允許延時26+10.4 μs)。
這是一個當XGATE程序加入后,如何滿足最大延時并允許其他程序執行的很好的例子。
3.7? LIN協議處理
本地互連網(LIN)協議在汽車控制方面有廣泛應用,其主要作用是作為CAN的展開,但是現在也開始在其他非汽車應用領域中流行起來。
LIN和SCI外部設備一樣,都是按字節控制數據的。在LIN中,XGATE可以處理傳輸數據、緩沖器接收數據中斷和數據排隊的協議。
XGATE執行213字節長的協議程序,執行時每字節只要0.9 μs。在雙字節加載數據時,80 Hz的頻率下處理雙字節LIN信息只用了XGATE執行能力的0.66%。
3.8? 排隊管理
對外部設備的排隊管理可以使主CPU進行有意義的加載。一些MCU體系結構根據排隊選擇外部設備來減少在CPU上的加載。XGATE可以根據使用者的要求提供此項功能。結語S12XD系列16位微處理器是較高端的車載型單片機,應用很廣泛。它的眾多優勢中最大、最有特色的就是XGATE的加入。XGATE作為一個獨立于CPU的協處理器對于整個芯片的作用很大。在處理中斷方面XGATE可以實現很強大的功能,可以大量降低主CPU的加載率,讓數據傳輸更順暢。在訪問RAM方面XGATE也有其自己的優勢,在實際應用中必然會受到大家的重視。但是就現在而言,雙核技術還是屬于一項新技術,在很多方面的應用還是需要大家共同探索的。
評論