基于TJA1080的FlexRay總線接口設計
摘要 介紹基于TJA1080的FlexRay總線在數(shù)字信號處理器(DSP)C5509上的實現(xiàn)。整個系統(tǒng)以DSP為核心,采用TJA1080總線控制器實現(xiàn)FlexRay通信協(xié)議,進行數(shù)據(jù)收發(fā);制造簡單,集成度高,功耗低,適用于車內多種電子設備的局域總線實現(xiàn)。
關鍵詞 FlexRay 總線 TJA1080 C5509
引言
現(xiàn)今的汽車電子設備越來越多,早期的CAN總線已經不能很好地解決眾多電子設備之間的通信,通信速度更高和通信更安全的車內總線成為汽車電子的迫切需求。FlexRay總線是最近推出的一種先進高速串行同步和異步通信系統(tǒng)。該總線具有故障容限,可提供500 kbps~10 Mbps的確定數(shù)據(jù)傳輸速率和24位CRC(循環(huán)冗余)校驗碼。其通信速度和安全機制均滿足目前車內電子設備的需求。
本文介紹一種在數(shù)字信號處理器(DSP)C5509上實現(xiàn)FlexRay總線的方法。使用恩智浦半導體公司(NXP,原飛利浦半導體公司)的 FlexRay總線控制器TJA1080。TJA1080負責將各個設備的數(shù)據(jù)傳輸?shù)紻SP,由DSP對數(shù)據(jù)進行分析和處理。由于系統(tǒng)采用DSP作為核心,故可以對車載電子的數(shù)據(jù)進行復雜的處理。
1 FlexRay總線及其控制器
TJA1080FlexRay總線是一種全新的總線系統(tǒng)。其主要特性有:
?、?支持雙通信通道,每個通道的速度均達到10 Mbps。與CAN協(xié)議相比,可用的帶寬提高了10~40倍。
?、?總線數(shù)據(jù)的訪問是基于同步時基的。該時基通過協(xié)議自動建立和同步,并提供給應用層。時基的精確度介于0.5 μs和10 μs之間。由于采用同步時基,消息在通信周期中擁有固定位置,接收器已經提前知道了消息到達的時間,因此可以可靠、準時地傳送安全應用相關的信息。
③ FlexRay總線提供消息冗余傳輸和非冗余傳輸兩種選擇,系統(tǒng)可以進行優(yōu)化,以提高可用性或吞吐量。用戶無需調整現(xiàn)有節(jié)點中的軟件就可以擴展整個系統(tǒng);同時,支持總線或星型拓撲結構。FlexRay總線提供了大量配置參數(shù)(如通信周期的持續(xù)時間、消息長度等),可以支持對系統(tǒng)進行調整,以滿足不同應用場合的需求。
?、?FlexRay總線在重負載下可以關閉部分節(jié)點,使其僅接收數(shù)據(jù)而不發(fā)送數(shù)據(jù),減少數(shù)據(jù)重發(fā)次數(shù),使得總線負載很快下降。
FlexRay總線的這些特性使其可以替代CAN總線,適合車載骨干網(wǎng)絡、分布式控制系統(tǒng)以及安全系統(tǒng)等應用場合。目前,已有多家公司生產FlexRay總線控制器。本文選用恩智浦半導體公司的TJA1080總線控制器,介紹其內部結構以及與DSP的軟硬件連接方法。
TJA1080總線控制器的內部結構如圖1所示。從圖中可以看出,TJA1080總線控制器主要由狀態(tài)機、信號路由器、輸入/輸出管理模塊、收發(fā)模塊以及發(fā)送器等組成。
圖1 TJA1080結構框圖
物理層通道有一個獨立的接收發(fā)送通道,速度最高可以達到10Mbps。在工作狀態(tài)下,主機可以訪問TJA1080的接收模塊和發(fā)送器,通過對其操作實現(xiàn)對物理層數(shù)據(jù)的收發(fā)??偩€上的數(shù)據(jù)幀都將到達總線上所有的TJA1080,每一個TJA1080在收到總線數(shù)據(jù)幀后,都將經過接收濾波器;濾波器將不屬于自己地址的數(shù)據(jù)幀濾除,只將屬于自己的數(shù)據(jù)幀和廣播幀存儲到接收FIFO中。
TJA1080的溫度檢測模塊用于檢測設備溫度,超過一定溫度將自動關閉總線收發(fā)。喚醒模塊負責將處于SLEEP狀態(tài)的總線節(jié)點喚醒,但超過一定時間仍無數(shù)據(jù)收發(fā)后重新進入SLEEP狀態(tài),從而降低整個系統(tǒng)功耗。總線失效檢測器負責檢測整個總線的狀態(tài),當發(fā)現(xiàn)總線負載較重時,將自動關閉發(fā)送器,此時該節(jié)點只能接收數(shù)據(jù)而不能發(fā)送數(shù)據(jù),這樣總線上的數(shù)據(jù)幀將很快被相應節(jié)點接收,迅速減輕總線負載。低功耗收發(fā)模塊負責低功耗工作模式下數(shù)據(jù)的收發(fā),采用減少數(shù)據(jù)重發(fā)機制,雖然降低了數(shù)據(jù)安全性,但同時也降低了整個系統(tǒng)功耗;配合溫度檢測模塊,可以從軟件上實現(xiàn)降低總線溫度。
主機對TJA1080的管理主要是通過輸入/輸出管理模塊進行數(shù)據(jù)的收發(fā)操作,下面結合DSP介紹接收數(shù)據(jù)的軟硬件實現(xiàn)方法。
2 系統(tǒng)硬件結構
整個系統(tǒng)由C5509、TJA1080、ADC/DAC以及Flash等組成,其硬件連接如圖2所示。DSP是核心控制單元;ADC用于采集模擬信號,轉變成數(shù)字信號;DAC負責將數(shù)字信號轉換成模擬信號;Flash用于保存DSP所需的程序,供DSP上電調用。此外,使用DSP的HPI接口連接到PC機,這樣所有的總線數(shù)據(jù)均可以通過PC機存儲和顯示,PC機的數(shù)據(jù)也可以通過DSP發(fā)送到總線上。
圖2 系統(tǒng)硬件結構框圖
ADC負責采集電子設備的數(shù)據(jù),可以是溫度傳感器數(shù)據(jù)、顏色傳感器數(shù)據(jù)、語音信號、圖像信號或者其他信號。DSP對這些數(shù)據(jù)進行處理后,將處理后的結果根據(jù)不同的情況通過TJA1080發(fā)送到總線上的其他節(jié)點;相反,DSP通過TJA1080讀取總線上其他節(jié)點發(fā)送的數(shù)據(jù)幀,并對這些數(shù)據(jù)幀進行處理,將結果發(fā)送到DAC,可以實現(xiàn)對本節(jié)點電子設備狀態(tài)的控制。
3 TJA1080與C5509的硬件設計
TJA1080與C5509的連接是系統(tǒng)硬件連接的主要組成部分,如圖3所示。使用C5509的緩沖串口(McBSP)連接TJA1080。緩沖串口是C5509的多通道串口連接設備。TJA1080的連接為異步串口(UART),這里使用DSP的緩沖串口模擬異步串口,實現(xiàn)與TJA1080的連接。TJA1080的其他輸入/輸出引腳使用C5509的通用I/O(GPIO)口控制,實現(xiàn)對TJA1080的各種狀態(tài)的檢測和控制。
圖3 TJA1080與C5509的連接圖
將緩沖串口的數(shù)據(jù)輸入(DR)和幀同步輸入(FSR)同時與UART的發(fā)送數(shù)據(jù)線相連,這是因為UART的串行數(shù)據(jù)線既有數(shù)據(jù)信息,又有幀信息。而此時UART的接收數(shù)據(jù)線與緩沖串口的數(shù)據(jù)輸出線相連。
DSP使用緩沖串口內部的采樣時鐘,緩沖串口可以配置成接收和發(fā)送數(shù)據(jù),UART的1位數(shù)據(jù)對應于緩沖串口的16位數(shù)據(jù)。軟件必須將DSP要發(fā)送的1位數(shù)據(jù)擴展成需要發(fā)送的16位數(shù)據(jù),同樣也要將接收到的每16位數(shù)據(jù)壓縮成1位數(shù)據(jù)。這就要求設置采樣速率發(fā)生器產生一個內部串行時鐘,是串行波特率的16倍。因為每個UART字都以一個下降沿開始,這個下降沿可以用作幀同步輸入,因此數(shù)據(jù)線和幀同步信號都連接到UART的輸出上就可以得到這一信號。
為了以8N1格式(8個數(shù)據(jù)位,沒有奇偶校驗位,1位停止位)給UART發(fā)送1位數(shù)據(jù),發(fā)送器應該分為兩個部分:第一部分包含9個16位的字,是起始位和8個數(shù)據(jù)位;第二部分包含2個8位的字,是停止位。其他UART的格式可以通過調整幀字的數(shù)量來實現(xiàn)。當以16位數(shù)據(jù)發(fā)送UART時,UART的“1”被編碼為0xffff,“0”被編碼為0x0000。停止位編碼為8位字,以便調整為1.5位停止位,以適應可能需要的其他UART格式設置。數(shù)據(jù)傳輸?shù)臅r序如圖4所示。
圖4 緩沖串口和異步串口數(shù)據(jù)傳輸時序
4 TJA1080與C5509的軟件設計
C5509與TJA1080的數(shù)據(jù)通信流程如圖5所示。系統(tǒng)初始化后,C5509判斷當前是否有數(shù)據(jù)讀寫。數(shù)據(jù)讀是通過判斷是否有掛起的串口接收中斷,該中斷由TJA1080產生,一旦TJA1080收到總線數(shù)據(jù)幀,就發(fā)出該中斷;數(shù)據(jù)寫是通過判斷上層程序是否有數(shù)據(jù)發(fā)送的軟件中斷,若有,則通過緩沖串口發(fā)送到TJA1080。無數(shù)據(jù)讀寫的情況下,C5509將定期檢測TJA1080的收使能(RXEN)和錯誤輸出(ERRN)引腳,以便確定 TJA1080是否正常工作;也可以根據(jù)需要,將TJA1080設置到低功耗狀態(tài)。如果讀取的數(shù)據(jù)的校驗錯誤較多,則表明無線通信當前的信道噪聲很大,或者TJA1080的總線被干擾出現(xiàn)紊亂。C5509通過I/O口設置總線保護使能(BGE)引腳為高,使得TJA1080停止向總線發(fā)送數(shù)據(jù),從而避免在低信噪比情況下多次重復發(fā)送同樣的數(shù)據(jù),縮短無效通信時間。
圖5 數(shù)據(jù)通信流程
5 總結
本文詳細介紹了基于C5509和TJA1080的總線控制器連接設計方法。使用C5509的緩沖串口連接總線控制器TJA1080,實現(xiàn)FlexRay總線的數(shù)據(jù)收發(fā);使用TJA1080模塊的串口對數(shù)據(jù)操作。整個系統(tǒng)連接簡單,實用性強。
參考文獻
[1] 汪安民. TMS320C54xxDSP實用技術[M]. 第2版. 北京:清華大學出版社,2006.
[2] 汪安民,程昱.DSP應用開發(fā)實用子程序[M]. 北京:人民郵電出版社,2005.
[3] Texas Instruments Inc. C5509 Dual-Core Processor Data Manual,2004.
[4] Philips Semiconductors Corp. TJA1080 Data Sheet FlexRay Transceiver,2006.
評論