FlexRay總線控制器和TC1796MLI接口設(shè)計
摘要研究了FlexRay總線控制器CIC310和微處理器TC1796的微連接口(MLI)的數(shù)據(jù)傳輸原理和總線協(xié)議,使用TC1796和CIC310實現(xiàn)MLI接口的高速數(shù)據(jù)傳輸,并介紹了一個主控制器連接多個MLI模塊的軟件和硬件實現(xiàn)方法。整個系統(tǒng)集成度高,適合車載電子設(shè)備的大量數(shù)據(jù)傳輸。
關(guān)鍵詞 TC1796 MLI接口 CIC310 FlexRay總線
引言
FlexRay總線是一種點對點形式的具有星形拓撲結(jié)構(gòu)的數(shù)據(jù)傳輸總線。提供了傳統(tǒng)總線通信協(xié)議所不具有的一些特性。FlexRay簡化了車載電子設(shè)備之間的通信系統(tǒng)架構(gòu),使得車載電子單元變得更加穩(wěn)定和可靠。FlexRay總線具有故障容限,可提供500 kbps~10 Mbps的確定數(shù)據(jù)傳輸速率和24位CRC(循環(huán)冗余)校驗碼。
FlexRay總線支持2×10 Mbps的數(shù)據(jù)速率,與CAN總線協(xié)議相比,可用的帶寬提高了10~40倍。總線速率的提高使電子設(shè)備可以快速從總線獲取信息,也可以快速將自身信息傳送到總線上的其他設(shè)備。微處理器和FlexRay總線控制器的數(shù)據(jù)通信一般采用串行方式、并行方式以及其他方式。并行接口方式是早期采用的高速數(shù)據(jù)傳輸方式,但以更高速率傳輸時則存在多種問題。由于數(shù)據(jù)和地址總線較多,使得接口復(fù)雜,PCB布線難度增大,在高速時鐘下每根數(shù)據(jù)線和地址線都要求盡量等長,否則可能產(chǎn)生數(shù)據(jù)和地址傳輸時相應(yīng)位的紊亂,無法正確傳輸數(shù)據(jù)。串行方式硬件連接方便,內(nèi)部最少只需數(shù)據(jù)收和數(shù)據(jù)發(fā)2根線,但傳輸速率較慢。
本文介紹一種微連接口MLI(MicroLink Interface)實現(xiàn)總線傳輸,使用FlexRay總線控制器CIC310及處理器TC1796。CIC310采集總線上各個節(jié)點的通信數(shù)據(jù),并對總線負載和總線容量進行檢測和控制。TC1796將各個節(jié)點數(shù)據(jù)進行處理,他們之間采用微連接口MLI,實現(xiàn)高速數(shù)據(jù)傳輸,最快數(shù)據(jù)傳輸速率達到37.5 Mbps,完全滿足2×10 Mbps的總線數(shù)據(jù)速率。
1 FlexRay控制器CIC310
CIC310是英飛凌公司最近推出的FlexRay總線控制器,其內(nèi)部結(jié)構(gòu)如圖1所示。從圖中可以看出,CIC310總線控制器主要由ERay模塊、DMA模塊、時鐘管理模塊、中斷模塊、內(nèi)存和數(shù)據(jù)處理以及數(shù)據(jù)接口模塊等組成。
圖1 CIC310內(nèi)部功能框圖
CIC310有3種接口方式將數(shù)據(jù)傳輸?shù)教幚砥?,這3種方式分別為SSC(Synchronous Serial Channel,串行接口)方式、XMU(Demultiplexer 8/16 bit Parallel Interface,非復(fù)用的8/16位并行接口)方式和MLI方式。其中SSC為一般的串口連接方式,具有連接簡單和連接線少的特點,但數(shù)據(jù)傳輸速率較低;XMU接口為并口連接方式,數(shù)據(jù)傳輸速度比串口方式快很多,但連接線較多;MLI接口為專用接口方式,一般可以和專用車載控制器連接。英飛凌的TC1796具有和CIC310連接的MLI接口。
CIC310和總線接口有2個獨立的收發(fā)通道,每個通道的數(shù)據(jù)傳輸速度可達10 Mbps,片內(nèi)ERay模塊主要負責(zé)總線數(shù)據(jù)的收發(fā)、總線和DMA模塊的數(shù)據(jù)交互、向外設(shè)產(chǎn)生各種中斷以及實現(xiàn)數(shù)據(jù)讀寫時鐘的管理等。ERay模塊一般經(jīng)過數(shù)據(jù)濾波器,將一些廣播幀和總線上其他用戶的數(shù)據(jù)幀濾除后,將本用戶的數(shù)據(jù)幀傳輸?shù)紺IC310片內(nèi)的DMA模塊。DMA模塊進行數(shù)據(jù)處理和數(shù)據(jù)校驗,可以采用事先設(shè)定的數(shù)據(jù)系數(shù)進行處理。
2 微處理器TC1796
TC1796是基于英飛凌公司TriCore處理器架構(gòu)的32位微控制器,在一塊芯片中集成了微控制器、微處理器和數(shù)字信號處理器。具有2 MB的嵌入式Flash和多種創(chuàng)新的片上外設(shè),如毫秒總線、快速模數(shù)轉(zhuǎn)換器、微連接口以及新穎的高性能三總線結(jié)構(gòu),提升了系統(tǒng)總體性能,同時降低了系統(tǒng)成本。其主要特點有:
◆ 具有4級流水及并行架構(gòu)的高性能32位CPU,完全集成DSP處理能力,具有單精度浮點運算單元,工作頻率達150 MHz;
◆ 具有32位外設(shè)控制處理器,2 MB嵌入式程序Flash、128 KB數(shù)據(jù)Flash、16 KB仿真EEPROM、192 KB片上SRAM;
◆ 具有16通道DMA控制器,支持同步burst Flash訪問的32位外部總線接口單元,支持2×255個硬件中斷源;
◆ 具有2個毫秒總線接口、2個通用定時器陣列模塊、2個異步/同步串行通道、2個高速同步串行通道、2個高速微連接口、4個CAN節(jié)點、4通道快速模數(shù)轉(zhuǎn)換器、2個具有8/10/12位精度的16通道模數(shù)轉(zhuǎn)換器。
圖2 TC1796內(nèi)部結(jié)構(gòu)圖
TC1796的內(nèi)部結(jié)構(gòu)如圖2所示。內(nèi)部主要由PMU(Program Memory Unit,程序存儲單元)、DMU(Data Memory Unit,數(shù)據(jù)存儲單元)、FPU(Floating Point Unit,浮點單元)、PMI(Program Memory Interface,程序存儲接口)、DMI(Data Memory Interface,數(shù)據(jù)存儲接口)、PCP(Peripheral Control Processor,片內(nèi)外設(shè)控制處理器)、STM(System Timer,系統(tǒng)定時陣列)和PLL(Phase Locked Loop,鎖相環(huán))等組成。外部接口包括ADC、FADC(快速ADC)、串口、JTAG(仿真口)、GPIO(通用I/O口)、ASC(異步串口)、CAN、MSC(Micro Second Channel,毫秒口)、MLI口等。
3 MLI接口
MLI接口是一種快速同步串行接口,可以在CPU不參與的情況下進行數(shù)據(jù)傳輸。圖3是MLI接口的典型連接框圖。
圖3 MLI連接框圖
圖3中,具有MLI接口的處理器稱為本地控制器,另一個則為遠程控制器。雙方都具有發(fā)送器和接收器。發(fā)送器和接收器之間進行物理連接。本地控制器初始化數(shù)據(jù)和交互參數(shù),并負責(zé)控制所有的數(shù)據(jù)收發(fā)任務(wù)。每一次數(shù)據(jù)收發(fā)都必須由本地控制器發(fā)起,遠程控制器只是被動地響應(yīng)本地控制器的命令,讀取或者發(fā)送數(shù)據(jù)。如果有3個以上的MLI接口進行連接,則只能有1個本地控制器,其他均設(shè)置成遠程控制器。本地控制器具有1個發(fā)送窗口,所有的發(fā)送數(shù)據(jù)均通過發(fā)送窗口寫入發(fā)送器并發(fā)送出去。本地控制器接收到數(shù)據(jù)后通過中斷方式通知CPU或者DMA進行讀取數(shù)據(jù)。遠程控制器具有1個遠程窗口,沒有發(fā)送窗口;但遠程控制器不能控制遠程窗口,遠程窗口和發(fā)送窗口一樣,都是由本地控制器操作。實際上,遠程控制器相當(dāng)于一個完全被動的設(shè)備。遠程控制器收到數(shù)據(jù)將自動或者手動放到遠程窗口中,由遠程控制器的CPU或者DMA從相應(yīng)地址讀取。當(dāng)遠程控制器的CPU或者DMA需要發(fā)送數(shù)據(jù)時,本地控制器控制遠程窗口讀取相應(yīng)地址的數(shù)據(jù),并從發(fā)送器發(fā)送到本地控制器的接收器。
4 TC1796和CIC310的MLI接口連接
TC1796最多可以和4個CIC310的MLI接口連接,這樣1個處理器就可以連接4個總線控制器,從而控制8個總線節(jié)點并進行數(shù)據(jù)通信(每個CIC310控制2個總線節(jié)點),節(jié)省處理器成本。圖4為TC1796和2個CIC310的MLI接口連接。TC1796必須作為本地控制器,2個CIC310均為遠程控制器。
圖4 TC1796與2片CIC310連接
TC1796向CIC310發(fā)送數(shù)據(jù)的連接說明如下:MLI的接收器具有4個引腳,分別為RREADYA(接收數(shù)據(jù)準(zhǔn)備好標(biāo)志)、RVALIDA(接收數(shù)據(jù)有效標(biāo)志)、RDATAA(接收數(shù)據(jù))、RCLKA(接收時鐘);對應(yīng)的發(fā)送器也具有TREADYA(發(fā)送數(shù)據(jù)準(zhǔn)備好標(biāo)志)、TVALIDA(發(fā)送數(shù)據(jù)有效標(biāo)志)、TDATAA(發(fā)送數(shù)據(jù))、TCLK(發(fā)送時鐘)。其中TDATA和TCLK引腳由TC1796輸出,連接到每個CIC310的RDATAA和RCLKA引腳,這樣每個CIC310都采用同一個時鐘和數(shù)據(jù)信號。TC1796的4個MLI接口具有4個發(fā)送數(shù)據(jù)準(zhǔn)備好標(biāo)志和發(fā)送數(shù)據(jù)有效標(biāo)志,分別為TREADYA~TREADYD、TVALIDA~TVALIDD。將每個MLI的一對這樣的引腳連接到1個CIC310上,就完成對不同CIC310的選擇,從而區(qū)分出對哪個CIC310發(fā)送數(shù)據(jù)。從硬件連接可以看出,TC1796雖然可以和多個CIC310連接,但同時只能對1個CIC310發(fā)送數(shù)據(jù)。
TC1796接收CIC310的數(shù)據(jù)連接說明如下:TC1796的MLI接收器每個接口都具有獨立的4個引腳,RREADYA~RREADYD、RVALIDA~RVALIDD、RDATAA~RDATAD、RCLKA~RCLKAD,這樣每個接口正好和CIC310的發(fā)送器的4個引腳連接,可以同時接收4個CIC310的數(shù)據(jù)。在TC1796內(nèi)部,將每個CIC310連接到不同的DMA中斷上,使用DMA進行數(shù)據(jù)讀取。
TC1796與多個CIC310進行連接,采用下行單向通信(TC1796向CIC310發(fā)送數(shù)據(jù))、上行并行通信(CIC310向TC1796發(fā)送數(shù)據(jù))的目的是減少總線負載。當(dāng)總線節(jié)點有數(shù)據(jù)向處理器發(fā)送時,處理器總是及時讀取數(shù)據(jù),避免總線重發(fā)數(shù)據(jù),同時避免CIC310無法存儲突發(fā)的大量數(shù)據(jù)幀。當(dāng)處理器需要向總線發(fā)送數(shù)據(jù)時,即使處理器需要同時向多個總線節(jié)點發(fā)送數(shù)據(jù),依然采用單個節(jié)點輪流發(fā)送數(shù)據(jù)的方式,避免處理器同時將大量數(shù)據(jù)發(fā)送到總線,增加總線負載。一旦總線負載增加,數(shù)據(jù)傳輸誤碼率將大大增加,使得總線惡化。
參考文獻
[1] Infineon Technologies Inc. TC1796 32Bit SingleChip Microcontroller User’s Manual,2007.
[2] Infineon Technologies Inc. SAKCIC310OSMX2HT FlexRay Communication Controller Data Sheet,2007.
評論