Platform: msm8260
MSM8x60 platform introduction
Concept
整個平台由若幹個子產品組成,如有MSM8X60, RF, Power management, Buletooth and FM radio, WLAN, Universal broadcast moderm . 由于技術或器件材料特性所限制,是以這些IC不能內建到MSM8X60 IC中去,如果可以的話那就更好了。
在無線網絡方面支援得很好,如CMDA 1X, WCDMA, GSM等,CDMA隻有在MSM8660中才有。這些特性也使得MSM8X60平台有了其他廠家chipset不可比拟的優勢。
Feature
a. 內建應用雙處理器,專門用于多媒體的内部堆棧式記憶體(ISM),這樣可以減輕外部記憶體.
b. 多個處理器協同工作,發揮最大效率。
c. 傳感器外部子系統用來提高SD 和USB的傳輸能力
d. RPM 用來提高效率、節省功耗。
e. 支援多種系統,硬體支援好。
f. 高內建度。
g. 支援CMDA和 WCDMA模式
h. IF元件少
i. 支援GPS 和 GLONASS
Cpu
內建6個處理器。ARM11 和 QDSP4用來處理Modem; QDSP6, 兩個Scorpion core用來處理 Application; 一個ARM7 用來處理RPM, 一個ARM7用來處理 sensor。
Memory
高速ISM(333MHz)專門用于多媒體應用。内部還是有IMEM用于某幾個子產品。EBI1接口連接配接外部LPDDR SDRAM,EBI2連接配接外部低速LCD或一些異步裝置,如usb controller。系統可以通過eMMC nand flash 啟動。
1.5 Air interfaces
支援CDMA, GSM 和 WCDMA,上下行速率很高。跟其他無線網絡比起來功耗較低。内部內建gpsOne 引擎進而支援GPS 和GLONASS。
Multimedia
a. Camera
有兩種接口:
4-lane MIPI_CSI,primary分辨率能達到16MP,内部自帶JPEG處理。
2-lane MIPI_CSI,用在webcam上。
b. Display support
可同時支援三個屏顯示。4-lane MIPI_DSI 最大1280*800(WXGA)分辨率,RGB接口控達到1440*900, EBI2一般控制LCD。
所有顯示都通過MDP4來控制,用來提高圖檔處理能力及其他一些相關功能如縮放,伽馬校準等。
c. Audio support
內建在QTR中,可支援模拟和數字audio接口。
Connectivity
包括很多我以前沒聽過的port,如I2C, SPI, GSBI, UICC,TSIF等,不知道有些端口是高通獨有的,還是一般的手機晶片組都有這些port的。
Power management
專門用兩個晶片來進行電源管理。PM8058是主PMIC,提供ARM 和外設還有電池管理。PM8901主要管理Scorpion/QDSP 和電壓轉換。
Device architecture
平台體系主要由三個主系統構成:RPM system, Modem system 和 Application system. 而Application system又包括SMSS, MMSS, LPASS, SPSS, CPSS 5個子系統。為了優化,每個子系統都獨立的總線。不過有兩條總線系統是貫穿整個平台的,是:System fabric 和 Application fabric.
RPM system
專門用來管理平台資源和電源,可以達到降低功耗,靈活管理各子系統部分的功能。子系統可共享資源,運作使各子系統獨立,以防各個子系統之間的幹擾。
由于RPM帶ARM7處理器,是以很靈活而能最大效率地優化。而且還帶了安全保護特性。
RPM還可以針對平台不同的工作模式進行不同方式的管理。如在子系統休眠時降低電流,喚醒時又使能相應資源。
MPM在sleep mode 時可以通過關閉某些功能來降低功耗。
Modem system
以ARM11為核心,還有L210 cache controller,帶JTAG 和 ETM測試和調試功能。内部優SPM和RPM配合使電源最小化。帶硬體加速器減少arm11負載。支援多頻帶,多模式覆寫。可在其他subsystem power down的情況下獨立工作。
Application system
有5個子系統組成。為了資料快速傳輸,各子系統有獨立的fabric bus。
1. SMSS
包含兩個Scorpion processor with L2 cache, 另外還有些次要功能如clock, timer, power optimization, interrupt.專門為multimedia application服務。
和Modem system 一樣用SPM和RPM來最小化電源。
它所使用的是EIB1上的LPDDR SDRAM with application fabric。還有system fabric.
2. MMSS
包含display support, image processing, graphics功能。
用的是MIEM 和 ISM, application fabric和 system fabric.内部用到 MM FPB 和 FPB.
3. LPASS
核心為QDSP6還有硬體加速來執行編解碼進而降低功耗,和其他subsytem獨立操作。可支援多種音頻回放。内部通過兩段AHB bus将configuration 和 data 獨立開來。
包含4種接口,I2S, MI2S, PDM 和 PCM。 通過PLL5來支援獨立操作。
資料從AHB master傳到system fabric, 可通過AHB slave被通路。
和QTR中的音頻編解碼部配置設定合起來使用。
它所使用的是128kb的 LP memory。
4. SPSS
專門為了HS-USB 和 secure digital devices而增加的subsystem. 和上一代差別是非 processor-centric的,雖然減輕了處理器的負載,但是這子產品還是嚴重依賴處理器和軟體控制。是以SPSS通過給每個外設提供一個DMA來支援高吞吐量,低功耗。
另外,SPSS内部自帶了pipe memory使得在不同的接口間傳輸資料,這樣也不會有外部的幹預。外設和pipe memory之間要經過BAM處理。
外部有system fabric bus, 内部有SPS fabric bus。
5. CPSS
關鍵部分是它的bus system。AHB system包括FPB2, FPB1, FPB0,它們之間各自有異步時鐘。FPB1, FPB2要通路TSSC, PDM,PRNG需要通過bridges.
外部有system fabric, MM fabric, 内部有 FPB0-3 bus.
Buses
各個subsystem bus可獨立操作的。系統有三種總線是貫穿整個MSM device的。
1. System fabric,
包括AXI bus(133Mhz) 和 AHB;
2. Application fabric
包括AXI bus(266MHz), 主要用來SMSS, EBI1 DDR SDRAM, MMSS, LPASS和 system fabric之間的資料傳輸。
3. Fast peripheral bus
FPB主要用在RPM中。
Modes
隻有一種操作模式是(native mode)是有效的,那就是MODE[1:0]=00;其他都保留。
2.6 Clock
包含4個stages:
1. 輸入源.可以是CXO(19.2MHz), 或者 PXO(27MHz).
2. PLL. 有三種PLL:GP3, NT and HF.
3. Clock blocks.有5個blocks: Scorpion, multimedia, audio, modem, and global.
4. Clock regimes.
至于為什麼有這麼多個PLL,我想是因為都需要獨立操作進而達到省電目的的原因吧。
Memory support
a. 内部記憶體。
高速ISM:HSDDR控制器通過SMI通路,專門用于multimedia; 若幹個IMEM: system IMEM, multimedia IMEM, SPSS IMEM。
b. 外部記憶體。
高速LPDDR2 SDRAM,通過EBI1接口通路,它有自己的HSDDR控制器,用來支援application processing and Scorpion processors; 低速記憶體裝置:如LCD,通過EBI2通路; eMMC Nand Flash通過secure digital 控制器來配置gpio.
ISM and HSDDR controller
包括兩個major blocks: AXI slave, DDR controller, 一個supporting block: DIMs, 各自的時鐘獨立。 傳輸總線為MM fabric, 然後再通過application fabric 到達system fabric。 AHB bus用來配置寄存器。DDR interface運作頻率為333MHz, data rates 為666MHz。
EBI1 and HSDDR controller
它基本上和ISM一樣,差別的地方在于: 總線為apps fabric,EBI1接口的速率要比ISM要低。
EBI2
為了支援所有低速裝置,提供了兩個控制器:XmemC:通路一般異步裝置;LCD 控制器:用來記憶體映射或者LCD裝置。使用的是CPSS FPB0 bus。
IMEM
相對于上一代IMEM說多了很多特性:如空間更大,記憶體保護, AHB 總線支援等。
MSM8X60 IC總共有三種IMEM: system IMEM, MMSS IMEM, SMSS IMEM.可支援内部記憶體的配置,外部記憶體擴充。
eMMC Nand Flash
需要一個安全數字Port來支援eMMC nand flash. 總線為SPSS fabric。
Connectivity
MSM8X60為了友善使用者和其他人或者系統互動而提供了很多接口。如USB, SD, GSBI, I2S,PCM, TSS,TSIF等。
GSBI
GSBI存在的目的是為了友善設計人員在開發的時候靈活選擇想要的串行協定。同樣一個GSBI,這次用作SPI,下次在使用的時候可以作為I2C是使用,GSBI block在内部已經幫助實作了這些串行協定功能。
一共有12個GSBI blocks.分别連着有FPB2, FPB0和system fabric互動式得通過splitter。
I2C
I2C是種兩線制總線(SDA, SCL),可挂多個裝置,每個裝置通過位址來尋找,獨立操作。具體方法:
1.主裝置發START信号。
2.主裝置發7bit位址和1bit read/write信号,然後監聽。
3.從裝置(被選中的位址的相應裝置)應答。
4.主裝置在握手成功之後發送資料
5.發完資料之後主裝置發送STOP信号。然後釋放總線。
兩根線得上拉,輸出裝置得開漏。I2C裝置總數依賴于所接電容大小。
相對SPI來說,雖然不能一個bit這樣靈活的發送,但是它上面任何一個裝置都可以作為主裝置。另外握手協定使資料傳輸有保障,傳輸速率相對SPI要高。
SPI
SPI是種4線全雙工,同步總線:CLK, MISO, MOSI, CS。資料根據CLK可以一位位的傳輸,中間可以暫停,高位先傳。傳輸8bit後,主從裝置兩邊的移位寄存器交換資料,這樣完成一個spi時序。可挂載多個從裝置,通過CS信号來選擇。根據特定IC在上升沿或者下降沿采樣資料,在緊接着的下降沿或者上升沿發送資料。主裝置采樣或者發送資料的極性需要根據從裝置來進行配置。
軟體方面設定簡單,可以讓CPU有更多時間來處理其他事務。缺點是沒有錯誤校驗。
USB
USB有三種:高速(480Mbps),全速(13Mbps),低速(1.5Mbps)。
MSM8x60支援主從兩種模式。高速接口用來連接配接USB裝置。全速接口用來連接配接SIM卡。
1. HS-USB
内嵌UTMI+ core內建PHY。
2. FS-USB
用于SIM卡操作。但是它速度相對FS-USB相對慢一點(不過對SIM卡的速度應該足夠了),隻能支援主模式。
UIM
在GSM中用的是SIM,在CMDA中用的是UIM。可以把UIM看做是3G的SIM卡。
UIM的初始化隻能是在powerup的時候。
NFC
NFC主要用在近距離通過磁場的方式與外部通信,内外兩個天線。如交通卡,門房卡,身份識别,電子鑰匙,電子錢包等。
Bluetooth
它是一種短距離無線電通信技術。可以在PDA,PC,行動電話等之間通信。全球通用一個頻段(2.4GHz)。功耗低,幹擾小。
GPIO
每個引腳可單獨配置成輸入和輸出或者其他功能,由TLMM來管理。輸入有多種模式,輸出電流也可以配置。
Powerup states
在VDD_Px使能前必須要先開啟VDD_C1,GPIO進入未定義狀态,然後通過PM8058 和PM8091 IC 來使GPIOs進入預設狀态。再之後,GPIO會進入相應軟體設定的狀态。
MPM
當開啟了MPM功能之後,隻有某一部分gpio 和相應的 MPM funcation pin才能喚醒MSM device. 而且外部的pulls不能用在 digital pads上。
Output
可通過三種register來控制output。
a) 寫GPIO_IN_OUTn register 的 GPIO_OUT bit。
b) 寫GPIO_OUT_X register 相應位。
c) 寫GPIO_OUT_SET register相應位。可避免讀-修改-寫的過程,快而友善。
當GPIO_OUT位被配置後,應使能相應輸出。有下面幾種方法
1. GPIO_CFG register 的GPIO_OE bit 使能。
2. GPIO_OE_X register 使能,可用在多個GPIO控制上。
3. GPIO_OE_SET register 使能,免去讀-修改-寫的過程。
也配置除了I/O其他功能外,可能過GPIO_CFG來選擇。另外,整個寄存器也可以控制GPIO 輸出驅動電流的大小。
Input
輸入和輸出類似,有GPIO_IN_OUT, GPIO_IN_X寄存器,GPIO_IN_SET就沒什麼必要了。
有些GPIO也可以配置成BOOT_CONFIG register.
每個引腳都能配置成中斷,中斷有邊沿和電平觸發模式,可以通過相應寄存器進行配置。
Interrupt
MSMx60有兩種中斷類型。
1. direct connect interrupt。有邊沿和電平觸發方式,可選擇設定中斷的處理器。一共有16個中斷可設定,當配置設定完後就要用下面提到的中斷了。
2. summary interrupts。有上面的中斷相比,沒有邊沿觸發方式。但是它有個特殊的設定就是 INTR_RAW_STATUS_EN ,這功能可用來省電。
Display support
接口支援: 4-lane MIPI DSI, EBI2, LCDC RGB, HDMI S-video。
核心部分為MDP4。
MDP4
支援三個display同時顯示。每種output都有4種input source可選。
提供了合成、色彩空間轉換、圖像品質的增強、格式轉換等一系列功能。而且輸入格式和源可以有多種。輸出也可以有很多種。
總的來說,MDP4的處理過程如下。
1. 通過MM fabric bus然後再經過AXI interface将資料接收進來。
2. 選擇相應的Input pipe,一共有四種。
3. 然後再經過crossbar switching.
4. 通道資料進入overlay processor處理(合并等)。
5. 合并好的資料又被送到display output processing中。
6. 最後資料被送到相應的interface controller中。
7. 處理好的資料送到各自的硬體裝置顯示。
LCDC or DTV RGB port
LCDC 、DTV RGB和GPIO複用端口。
LCDC RGB經過 primary LCDC timing generator産生。DTV RGB經過extern timing generator産生。
TV encoder
MDP4輸出信号(8bit 4:2:2 YCrCb)到TV encoder,然後輸出的10bit 數字視訊輸出經過DAC變成模拟信号,驅動外部的video amplifiers,然後送到NTSC, PAL電視上。
Video amplifiers可以探測到是否有視訊裝置接在上面,進而通知MSM。這樣不用使用者去設定就可以直接使用了。
PM8058 IC給DAC提供1.25v電源。
HDMI transmitter
HDMI可以有多種Input,如果DVD player, set-top boxes等。而且還可以承載音頻信号。而且還帶有資料保密功能。