當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于DSP 技術(shù)和CAN總線的多節(jié)點遠程數(shù)據(jù)傳輸系統(tǒng)

 1  引言

  控制局域網(wǎng)CAN屬于現(xiàn)場總線范圍,是德國Bosch 公司從20 世紀80 年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導纖維,通信速度可達1 M bit/ s. CAN 協(xié)議的最大特點是廢除了傳統(tǒng)的站地址編碼,而對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點可使網(wǎng)絡內(nèi)的節(jié)點個數(shù)在理論上不受限制,數(shù)據(jù)塊的標識碼可由11 位或29 位二進制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這一點在分布式控制系統(tǒng)中非常有用。

  2  系統(tǒng)設計

  在很多野外或測量環(huán)境比較差的地方,需要采用體積小,數(shù)據(jù)處理性能高,并且遠程傳輸穩(wěn)定的數(shù)據(jù)處理傳輸系統(tǒng)。針對這種要求,設計了多節(jié)點遠程數(shù)據(jù)采集傳輸系統(tǒng)。在遠端將要檢測的各個節(jié)點的數(shù)據(jù)采集送到DSP進行處理,通過DSP的CAN控制接口,將各節(jié)點數(shù)據(jù)傳輸?shù)紺AN 總線上,然后用DSP 的串行通信口與上位機進行數(shù)據(jù)交換和控制操作。

  系統(tǒng)采用了DSP 作為微處理器,充分利用DSP 器件的體積小,功耗低,數(shù)據(jù)處理功能強大的優(yōu)點;同時采用CAN 總線來傳輸數(shù)據(jù),不僅結(jié)構(gòu)簡單(只有2 根線與外部連接) ,傳輸穩(wěn)定性高而且傳輸距離遠,尤其是可對網(wǎng)絡內(nèi)各個節(jié)點通信數(shù)據(jù)塊進行獨立編碼,加大了數(shù)據(jù)接收的靈活性,擴展了網(wǎng)絡節(jié)點數(shù)。系統(tǒng)在數(shù)據(jù)采集處理同時,可以方便地與當?shù)豍C 利用DSP 的SCI串行口進行通信?;谝陨蟽?yōu)點的方案設計解決了在很多工作環(huán)境惡劣,檢測點較多的場合下的數(shù)據(jù)處理傳輸問題。

  美國德州儀器(TI) 公司的DSP24xx 系列是TI 公司推出的低價格高性能的16 位定點DSP 芯片,是專為數(shù)字電機控制和其他控制應用而設計的芯片。選用了TMS320LF2407 芯片作為數(shù)據(jù)處理芯片,與上位PC 機進行數(shù)據(jù)傳輸。TMS320LF2407 自帶CAN控制器(符合CAN 總線210 協(xié)議) ,且可以通過設置內(nèi)部寄存器的自測試位來實現(xiàn)CAN 控制器的自發(fā)自收功能,為調(diào)試CAN 通訊的下位機提供了方便?;谛酒拇斯δ苣K,硬件設計只要通過CAN 驅(qū)動器(電平轉(zhuǎn)換) 接到CAN 總線上,就可以與其他CAN 節(jié)點進行通訊。DSP與上位機通信部分可以通過SCI 異步串行通信口來實現(xiàn)。系統(tǒng)結(jié)構(gòu)圖如圖1所示。

  

  圖1  系統(tǒng)結(jié)構(gòu)圖

  3  硬件設計

  采用的DSP 芯片自帶了CAN 控制器模塊和SCI 串行通信口,但是在系統(tǒng)各節(jié)點的連接和與PC 機通信上存在電平驅(qū)動轉(zhuǎn)換的問題。

  CAN 驅(qū)動芯片采用TI 公司的UC5350 驅(qū)動芯片。UC5350控制器區(qū)域網(wǎng)轉(zhuǎn)換器專為采用CAN 通信的工業(yè)應用而設計,具有最高可達1 M bit/ s 的高速收發(fā)特性,并且至少可以連接110 個節(jié)點。圖2 為UC5350 與TMSLF2407 芯片的硬件連接圖。

  需要注意的是,在CAN 傳輸網(wǎng)絡的兩個終端CAN 節(jié)點上,節(jié)點的CANH和CANL 兩根信號線之間一定要跨接1個120 Ω的電阻R2 ,這是為了消除傳輸中的回流干擾問題。

  

  圖2  CAN 驅(qū)動硬件圖

  DSP 與上位機的通信部分,采用TMS320LF2407 的SCI 異步串口來完成。由于TMS320LF2407 的串行口輸入輸出均為TTL電平,而IBM- PC 機的串行口是按RS - 232 - C 標準設計的,必須經(jīng)過電平轉(zhuǎn)換才能實現(xiàn)兩者之間的通信。設計中采用了符合RS - 232 標準的驅(qū)動芯片MAX232 進行電平之間的轉(zhuǎn)換。圖3 為DSP 與PC 串口之間的接口硬件圖。

  

  圖3  RS232 串口驅(qū)動硬件圖

  4  軟件設計

  4. 1  CAN模塊間通信程序的設計

  TMS320LF2407 的CAN 模塊是1個16位的外設, 支持CAN2.0B 協(xié)議。CAN 模塊有6 個郵箱(MBOX0~MBOX5) ,其中2 個接收郵箱(MBOX0 , MBOX1) , 2 個發(fā)送郵箱(MBOX4 ,MBOX5) 和2 個可配置為接收或發(fā)送郵箱(MBOX2 ,MBOX3) ;有用于0 ,1 ,2 和3 號郵箱的本地屏蔽寄存器和15 個控制/ 狀態(tài)寄存器。對它的訪問分成控制/ 狀態(tài)寄存器的訪問和郵箱的RAM訪問。這些郵箱位于1個48 ×16位的RAM中,可被CPU或CAN 讀寫。

  由于系統(tǒng)是1 個多節(jié)點的遠程數(shù)據(jù)收發(fā)系統(tǒng),因此對各節(jié)點CAN模塊正確的初始化就顯得十分重要。初始化必須設置各節(jié)點中CAN模塊的通信波特率和同步跳轉(zhuǎn)寬度一致,且配置好節(jié)點模塊中的接收碼和屏蔽碼。再按照發(fā)送數(shù)據(jù)幀格式來配置郵箱ID 和信息控制寄存器。

  4. 1. 1  初始化位定時器

  CAN 通信中的波特率設定與系統(tǒng)控制狀態(tài)寄存器SCSR1、CAN 模塊中定時器BCR1 和BCR2 有關(guān)(其中BCR1 和BCR2 決定了CAN 控制器的通信波特率、同步跳轉(zhuǎn)寬度、采樣次數(shù)和重同步方式) 。在對位定時器進行初始化時,注意要先設置CAN模塊主控制寄存器MCR 中的改變配置請求位為1 ,即CCR = 1 ,并判斷全局狀態(tài)寄存器GSR 中的改變配置使能位CCE 是否為1 ,如為1 則可進行下面的初始化工作。而在完成對位定時器的初始化后需將CCR 位清零以進入正常工作模式; 在配置BCR1 和BCR2 時要按照如下公式對CAN 控制器波特率進行設定:

  波特率= ICLK/ [ ( BRP + 1) + BitTime ]

  式中: ICLK為CAN 控制器的時鐘頻率,即在SCSR1 中充定的DSP 的系統(tǒng)頻率; BRP 為波特率預分頻位,決定著CAN 控制器的時間片TQ , TQ = ( BRP + 1) / ICLK; BitTime = ( TSEG1 + 1) +( TESG2 + 1) + 1 , TSEG1 為時間段1 ,可編程為3~16個TQ時間片。TSEG2 為時間段2 ,必須小于或等于時間段1。

  4. 1. 2  初始化郵箱

  對郵箱初始化即是對郵箱中的有關(guān)寄存器進行初始化,主要用來設置郵箱接收或發(fā)送報文的標識符,發(fā)送的是遠程幀還是數(shù)據(jù)幀,并對發(fā)送的數(shù)據(jù)區(qū)賦初值。步驟為:禁止郵箱工作,即向郵箱方向/ 使能控制寄存器MDER 中的郵箱使能位MEn( n = 0~5) 寫0 ;設置MCR 寄存器中數(shù)據(jù)域改變請求位為1 ;配置郵箱的內(nèi)容;返回正常模式;使能郵箱。[!--empirenews.page--]

  4. 1. 3  郵箱信息的接收和發(fā)送

  在做完以上初始化工作后, 就可以轉(zhuǎn)入郵箱的收發(fā)程序。為了大量的數(shù)據(jù)能在系統(tǒng)網(wǎng)絡上連續(xù)傳輸, 在內(nèi)存設置了2個數(shù)據(jù)緩沖區(qū)(讀和寫2 個數(shù)據(jù)區(qū)) , 分別用來存放要發(fā)送和接收的數(shù)據(jù)。用郵箱發(fā)送時, 將準備發(fā)送的數(shù)據(jù)從寫數(shù)據(jù)存儲區(qū)寫到發(fā)送郵箱的數(shù)據(jù)區(qū), 然后使能發(fā)送郵箱并設置TCR寄存器中發(fā)送請求位為1 , 判斷發(fā)送應答信號和發(fā)送中斷標志位, 在成功發(fā)送之后再將發(fā)送中斷標志位和發(fā)送應答位清除。

  

  圖4  數(shù)據(jù)發(fā)送流程圖

對于一個接收事件來說,由于每個CAN 節(jié)點接收數(shù)據(jù)是根據(jù)檢測網(wǎng)絡上數(shù)據(jù)幀的ID 與接收郵箱中初始化設定的報文的設定ID 是否相符來決定該節(jié)點是否接收此數(shù)據(jù),因此在接收事件中,要設置接收郵箱報文的標識符及標識符相關(guān)的局部屏蔽寄存器(LAM) 。然后判斷接收信息懸掛位RMPn 或接收中斷標志位MIFn 是否置位,如果位說明郵箱成功接收信息,將接收的數(shù)據(jù)轉(zhuǎn)移到讀據(jù)緩沖區(qū),然后復位接收中斷標志位和接收信息懸掛位。

  

  圖5  數(shù)據(jù)接收流程圖

  4. 2  SCI 串行通信程序設計

  串行通信的程序分為DSP 的串行收發(fā)和PC 機的串行收發(fā)兩個。對于PC 機的串行收發(fā)采用了標準串口通訊程序。TMS320LF2407 串行通信的軟件設計可以采用查詢和中斷兩種方式,設計中采用了中斷方式接收數(shù)據(jù),并設置軟件發(fā)送標志位來查詢發(fā)送的方式。程序分為主程序和中斷服務程序2 個部分。

  在主程序中對SCI 異步串口進行初始化(包括操作模式、波特率、字符長度、奇偶校驗位、停止位位數(shù)、中斷優(yōu)先級和使能控制等信息) 。主程序設置了軟件發(fā)送標志位,并不斷查詢此位,在其置位時發(fā)送數(shù)據(jù)。中斷服務程序中,當需要上傳數(shù)據(jù)時,在中斷程序或其他的子程序中置發(fā)送標志位,由主程序通過查詢該標志位來控制發(fā)送數(shù)據(jù);對于接收數(shù)據(jù),則在中斷服務程序中,將接收到的數(shù)據(jù)地址與相應軟件設置的地址進行比較,采用地址位喚醒模式實現(xiàn)與上位機通訊。

  在串行通信中,時鐘和波特率的同步是十分重要的,在編程中,考慮到所用芯片的特性和實際應用需要,采用了系統(tǒng)時鐘為20 MHz ,通訊波特率4 800 bit/ s 與RS - 232 進行通信。根據(jù)公式: SCI 異步波特率= SYSCLK/ [ (BRR + 1) ×8]

  來確定波特率選擇寄存器BRR 的值。

  值得注意的是在串行通信設置中,串行通信控制寄存器SCICTL1 的SLEEP 位(上電時為1) 設置很重要,SLEEP 位為SCI休眠位,為1 時使能休眠方式,它的正確設置可以使得通信過程正確的響應中斷,從而轉(zhuǎn)移到相應的服務程序中。因此必須正確設置使得程序只有在檢測到地址字節(jié)時被中斷。而在中斷程序中比較地址:若相同,則軟件清除SLEEP 位,確保在收到每個數(shù)據(jù)字節(jié)都可產(chǎn)生中斷;若不相同,則保持SLEEP 為1 以接收下一個地址。由于系統(tǒng)為多節(jié)點的通信,因此采用了地址位喚醒模式來正確控制各節(jié)點間的數(shù)據(jù)收發(fā)。在調(diào)試程序中為每個節(jié)點設置了2 個標識地址(如00H 和FFH) ,當收到00H時,DSP 發(fā)送數(shù)據(jù),當收到FFH 時,DSP 接收數(shù)據(jù)。圖6、圖7 分別為串行主程序和中斷服務程序的流程圖。

  

  圖6 串行通信主程序流程圖

  

  圖7 中斷服務程序的流程圖

  5  結(jié)束語

  系統(tǒng)解決了野外作業(yè)時要求高穩(wěn)定性的遠程數(shù)據(jù)傳輸問題,可以在環(huán)境惡劣的情況下,多點采集數(shù)據(jù),并將采集到的數(shù) 據(jù)及時處理傳輸?shù)竭h端上位機進行分析控制。在實際的測試中,用此系統(tǒng)很好地完成了數(shù)據(jù)的采集傳輸工作,由此得出此系統(tǒng)可以穩(wěn)定的進行工作。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉