Array
---系統設計
系統要求概述
---演示平台意味著它應當能夠展示如何通過CAN匯流排控制幾種子系統,所選子系統應類似典型的工業或車載子系統。子系統分布在三個電子板上。
---由於許多DSP與微處理器都在向3.3V操作移植,因此將德州儀器(TI)的3.3V CAN收發器組合到平台中,從而顯示其如何與標準5V CAN收發器進行互操作。由於這一點,該平台既包括3.3V CAN收發器,也包括5V CAN收發器。
---許多處理器都包括集成的can控制器。本演示選擇了三種處理器,覆蓋了低端控制(TMS320LF2406A)、高端控制(TMS320F2810)及普通微處理器(TMS470R1VF338——ARM7處理器)市場。
---要展示匯流排的仲裁工作情況,即多於一個節點需要同時向匯流排傳輸時匯流排如何反應,就要添加流量發生器以對匯流排加壓。
---本演示包括了以下子系統:
---* 風扇/溫度控制。
---在溫度設定值傳送至使用風扇控制目標溫度的溫度控制系統情況下,該系統將用做工業控制套用的模型。舉例而言,它可以仿真HVAC系統,也可以仿真任何在節點上根據CAN匯流排另一節點的命令設定值進行本地控制的子系統。
---* 馬達控制
---該系統用於仿真流行的工業馬達控制套用。此處的馬達速度和/或位置由CAN匯流排上的遠程節點控制,而實際的馬達控制則由節點之一本地進行。
---* CAN匯流排訛誤器(corrupter)
---該系統允許向CAN匯流排注入各種故障,以顯示匯流排如何檢測錯誤並在錯誤移除時無故障恢復。
---* 匯流排負載因數控制
---該 子系統產生額外的CAN匯流排流量。現有兩種流量發生器,第一種為額外流量,馬達速度決定其速率。第二種為完全基於微控制器的流量發生器。其目的在於用額外 的流量進行匯流排載入,從而導致發生匯流排仲裁,以顯示CAN匯流排對高匯流排負載的強大可靠性。在高匯流排負載下,優先權較低的數據包傳送延遲,而優先權較高的數 據包將使用匯流排。我們已設定平台使之在低優先權數據包延遲時給出音響提示。圖2是各種子系統及其分布。
---在匯流排上通信
---CAN匯流排處理器之間的通信由專門的CAN控制器處理,其作為每個處理器器件的一部分。上述控制器支持CAN協定的2.0B版本。雖然三個處理器之間的硬體相似,但可用的控制器有所不同,見表1。
---消 息通過“信箱”從處理器傳送到處理器。這些信箱經過配置可接收或傳輸含確定訊息標誌符的訊息。傳送訊息時,每個處理器的控制器參 與確認訊息已正確傳送。隨後,如果訊息標誌符與信箱的訊息標誌符相匹配,則存儲訊息以備處理。如果不匹配,則放棄訊息。
3.3V與5V的互操作性
---ISO 11898所描述的CAN物理層基本為5V系統,使信號線偏置為2.5V。使用5V部分作為CAN收發器似乎很自然,這也是傳統的做法。但是,大多數電子 系統都在向3.3V或更低的操作移植。理想的CAN收發器將允許採用3.3V電源的操作。TI提供一系列在3.3V上工作的CAN收發器 (SN65HVD23x),但允許在傳統的5VCAN匯流排上工作。該平台使用5V與3.3VCAN收發器的混合,顯示了兩種類型器件之間的互操作性。
輔助進行演示與評估的特性
---我 們向演示平台添加了某些特性,以輔助對CAN匯流排功能進行評估。這些特性介紹如下。F2810包括一個SCI接口,可通過電平轉換器(如 SN75LV4737A)方便地連線到PC的UART。我們開發了命令接口,允許從主機PC上的程式對匯流排操作進行監視與控制。我們可使用該程式向其他節 點傳送控制訊息,並監視CAN匯流排的狀態。在板上放置了幾個LED以顯示CAN匯流排何時工作、何時從PC接收命令等。
匯流排負載與訛誤(Corruption)
---這部分將描述用於給匯流排載入流量的電路系統及用於向匯流排注入錯誤條件的電路系統。
---匯流排負載
---現 有兩種機制可給CAN匯流排載入流量。第一種機制為感測器節點上的“滿溢數據包(flood packet)”發生器。數據包充滿匯流排的速率通過膝上型電腦或PC的GUI接口的下拉選單項控制。合適的滿溢速率取決於匯流排的數據速率 (1Mbps、500kbps、250kbps、125kbps)。表2顯示了就每種數據速率而言匯流排上的理論最大數據包負載,以及匯流排負載接近最大時 GUI上可用的推薦速率。訊息的位長由以下方程式得出:
---L=SOF+MSGID+RTR+CTRL+(8·MSGLENGTH)+CRC+ACK+EOF+IFS+STUFF
---其中:
---* SOF是幀長度的起點,1b。
---* MSGID是訊息標識符長度,11b
---* RTR是遠程傳輸請求的位長,1b
---* CTRL是控制欄位長度,6b,其包括IDE(標誌符擴展位)、r0(保留位)以及DLC(數據長度)欄位。
---* MSGLENGTH是訊息所占位元組的長度。大多數訊息為6B長,其中一條訊息為8位元組長。計算時假定為6B。
---* CRT是循環冗余碼的長度,16bit。
---* ACK是確認比特(acknowledge bit)的長度(此為2)。
---* EOF是幀結尾標誌符長度,7b
---* IFS是訊息間的最小匯流排幀間間隔時間,7b。
---* STUFF是因填充位(stuff bit)造成的訊息額外時間。長串零之後匯流排將強制進行轉移,我們假定訊息與訊息標誌符的填充位最大數為(11+48)/5b。
---第 二種機制可用來使匯流排負載超出其容量。馬達鏇轉的速率決定著馬達速度數據包載入匯流排的速率。馬達速度從零開始上升時,匯流排的負載也逐漸加大。在某一點上, 感測器節點上“滿溢數據包”發生器的低優先權數據包及馬達節點的馬達數據包將被延遲,從而使得更高優先權的流量可進入匯流排。系統 監控節點檢測延遲的訊息,通過使揚聲器發出卡嗒聲表明發生了訊息延遲。因此,揚聲器卡嗒聲表明匯流排仲裁正在工作,使得低優先權的數據滿溢及馬達位置數據包 延遲,以支持高優先權數據包的傳輸。
匯流排訛誤
---系統監控節點還包括在GUI接口控制下向匯流排注入錯誤條件的功能。匯流排訛誤器能夠對匯流排進行以下工作:
---* 打開系統監控板上匯流排連線器與CAN收發器之間的CAN_high line
---* 打開系統監控板上匯流排連線器與CAN收發器之間的CAN_low line
---* 短路CAN_high line為5V
---* 短路CAN_low line為5V
---* 短路CAN_high line為接地
---* 短路CAN_low line為接地
---* 同時短路CAN_high line與CAN_high line
---* 去除CAN線路之間的終端
---* 在CAN線路間安裝更多的終端
---還可以產生另一種錯誤:
---* 使CAN節點斷電(將一塊板從電源上拔下)
---就上述大多數錯誤而言,匯流排將停止工作。上述某些錯誤條件將導致匯流排出錯率下降。我們可通過GUI接口提供的統計數據查看錯誤條件的影響。我們要求CAN收發器能夠承受上述錯誤條件並在故障去除後恢復相同的出錯率性能。
性能測量
---本部分將總結平台的性能評 估。我們通過觀察在兩種不同cable長度的每個匯流排訛誤模式下如何影響節點間的通信來測量性能。為了測試匯流排斷電節點的影響,馬達節點關閉。這些測試在 CAN匯流排的不同波特率下重複進行。最後,我們用Philips pca82c251替代TI的SN65HVD251 5V CAN收發器再次進行測試。在所有情況下,TI的CAN收發器去除訛誤模式後均未出現損壞或性能下降。並且,TI的CAN收發器與Philips PCA82C251 CAN收發器性能相當。
產品支持
---通過TI的產品支持組織提供對本設計中各個組件的支持。您可從下面找到感興趣的更多信息:http://www.ti.com/corp/technical_support.htm,包括有關TI產品更多信息的電話號碼與電子郵件地址。
結論
---該平台演示了CAN匯流排電子器件的上述四項關鍵屬性以及TI提供的CAN匯流排電子產品。
---* 5V與3.3V CAN匯流排收發器的互操作性。
---通過混合採用5V與3.3V CAN匯流排收發器,顯示了標準5V CAN匯流排系統的互操作性。
---* CAN匯流排的多主機操作。
---三個節點中的任一個均產生訊息,並傳遞至其餘兩個節點的任意一個。在匯流排上沒有節點居於主導地位。相反,匯流排操作由訊息的優先權決定。
---* 匯流排仲裁操作
---如果匯流排載入了大量的低優先權數據包時,高優先權數據包可干預低優先權數據包的及時交付。低優先權數據包因為高優先權流量而延遲時,該平台將通過聲音提示反映這種情況。這表明匯流排仲裁正確工作,讓匯流排首先為高優先權數據包服務。
---* 注入錯誤條件的性能
---匯流排訛誤器允許各種錯誤條件注入匯流排。大多數情況下,匯流排在注入錯誤條件時將不能工作。最重要的是,匯流排在注入錯誤條件去除後還能恢復,而且匯流排操作也能回到原先的狀態。