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