??? 關鍵詞:穩定平臺,TMS320LF2407A,多機串行通信,校驗數
??? 穩定平臺,是指能夠使被穩對象在干擾作用下相對慣性空間保持方位不變,或在指令力矩作用下,按給定規律相對慣性空間轉動的裝置。它廣泛應用于慣性測量、武器裝備以及空間技術中。在穩定平臺中,伺服控制技術是關鍵技術之一。
??? 隨著電子技術和計算機技術的發展,DSP芯片的性能不斷提高,這為選用數字伺服控制方案創造了條件。在基于DSP的兩軸高精度穩定平臺系統中,采用兩塊TI公司的馬達專用控制芯片TMS320LF2407A作為控制器,分別控制單軸。F2407A包含了高速C2XX DSP CPU內核及SCI與CAN通信模塊,為實時通信提供了方便。但它同時也存在人機界面不友好、軟件資源沒有PC機豐富等因素,這些制約了它的應用。
??? 為了充分發揮該控制芯片的特點,兼具良好的人機接口以利于調試與監控,本系統采用PC機和DSP的主從式結構。PC機作為主機,完成對DSP的控制、數據結果的顯示以及人機接口,而DSP完成實時控制,上傳實時數據。這樣,如何實現多DSP與PC機的可靠通信,在整個系統實現中成為一個重要問題。本文以基于DSP的兩軸高精度穩定平臺為背景,介紹了一種TMS320LF2407A與PC多機串行通信的軟硬件方案,并對這種方法的優缺點進行了討論。
1 TMS320LF2407A及串行通信接口(SCI)
1.1 TMS320LF2407A簡介
??? TMS320LF2407A是在TMS320系列DSP的基礎上,專為數字電機控制而設計的。采用高性能靜態CMOS技術,電壓從5V降為3.3V,減少了功耗,而且指令執行速度提高到40MIPS,幾乎所有指令都可以在25ns的單周期內完成,如此高的運算速度可以通過采用高級控制算法如:自適應控制、卡爾曼濾波以及狀態控制,來提高系統的性能。而且,它有電機控制應用所必須的外設,如:32K 片內FLASH、2K 單訪問RAM、串行外設接口(SPI)、兩個事件管理模塊、16通道雙10位A/D轉換器。不僅如此,片內還有串行通信接口(SCI)和CAN控制器模塊,為多機通信的實現提供了可能。
1.2 串行通信接口(SCI)
??? 串行通信接口支持與CPU以及其它使用非歸零格式的異步外設之間的異步串行數字通信。SCI的接收器與發送器都是雙緩沖的,有各自獨立的控制位與中斷位,都可以同時工作在全雙工模式下。為了保證數據的完整性,SCI對接收的數據進行間斷檢測、奇偶性、超時以及幀錯誤等的檢查。SCI可以通過16位的波特率選擇寄存器,設置多達65000種通信速度,還可以通過RS?232或RS?485與許多主流外設接口。另外,SCI還提供了多處理器通訊模式,為其與PC多機通信的實現奠定了基礎。
2 TMS320LF2407A與PC多機串行通信的一種典型方法(SCI方法)
??? SCI具有多處理器通訊模式,可以用來進行多機通訊。多處理器通訊格式允許處理器在同一串行線路圖1PC與F2407A的通訊數據格式中,將數據塊有效地傳遞給其它處理器,在同一條串行線路中,每次只可以有一個傳輸,即每次只有一個發送者。通訊過程中,在串行數據鏈路中的所有DSP,設置它們的SCI的sleep位(SCICTL1.2)為進入接收睡眠模式,這樣,只有探測到地址幀才中斷。發送者發出的數據塊的第一個幀數據為地址幀,被所有的接收者讀取,只有具有正確地址(由軟件設定,不同DSP也可以有相同的地址,這樣可以實現廣播通訊)的接收者才能讀取其后的數據,其它接收者,不作響應,等待下一地址幀的到來。多處理器通訊模式又可以分為空閑線路模式與地址位模式。空閑線路模式在地址幀前有一段延時,沒有附加的地址/數據位,在處理超過10個字節的數據塊的情況下,空閑線路模式比地址模式效率高。空閑線路模式應該用在典型非多處理器通訊中。而且,對于空閑線路模式在地址幀前的延時,PC機處理起來較繁瑣,故,沒有采用空閑線路模式,而是采用了地址位模式。地址位模式,顧名思義,就是每個字節中加入一個地址/數據位(1表示地址幀,0表示數據幀)來區分數據與地址,這種模式處理小塊數據是十分有效的。于是,本方法就是通過使PC在整個通訊過程中模擬DSP的通訊,采用地址位多處理器通訊模式來實現DSP與PC多機串行通信。
2.1 通訊協議與硬件接口?
??? 為了實現通訊,PC與F2407A之間必須采用相同的通訊格式。圖1是PC的異步串行通訊數據格式與F2407A在地址位多處理器模式下的數據格式。
??? 從圖中可以看出,通訊格式可采用8位數據位、1位停止位、DSP禁止奇偶校驗位,波特率為9600bit/s。對于PC機通訊格式的確定,是通過對8250異步串行通訊控制器進行初始化來實現的。為了實現與F2407A在地址位模式下通訊,采用上述通訊格式的要求是不夠的,必須在數據中通過指定奇偶校驗位來加入地址/數據位。PC在發送地址幀時,設定奇偶校驗位為1,發送數據幀時,設定奇偶校驗位為0。
??? 由于禁止了奇偶校驗位,對通訊的可靠性有所影響。為了克服這一影響,引入了一種基于奇偶校驗的校驗數方法。在每7個字節數據后置一校驗數,校驗數的每一位對應前面每個字節數據的奇偶校驗位,最高位b7置校驗數低7位的奇偶校驗位,當數據少于7字節時,對應位置0。
??? 上位PC機發給每個軸DSP的控制命令如圖2所示,第一字節為DSP編號,第二字節為數據長度,第三個字節為命令號,其后的字節為命令參數,數據長度不超過10個字節。
??? 圖2中,數據長度:表示從命令號開始至命令參數n之間的幀數,n=0、1、2...6;校驗數:從命令號至命令參數n的每字節數據的奇偶校驗位填入校驗數相應位中,如命令號的奇偶校驗位填入校驗數的b0位,以此類推,b7位填入校驗數的奇偶校驗位。
??? 下位DSP上傳的數據為8個字節,前6個為實時數據,第7個為接收狀態數,表示DSP接收的狀態,每次數據接收結束置接收狀態數。第8個字節仍舊為校驗數。
??? 由于采用的RS-232通訊協議是點對點通訊,沒有沖突檢測與仲裁機制,而應用環境又是多機通訊,就必須控制對總線的訪問。這里采用了主從通訊方式,即由上位PC機對總線訪問進行控制。由上位機向從機發送指令與數據,當要求從機上傳數據時,發送上傳指令,等待從機的數據的上傳。在此期間不發送任何要求發送數據的指令,以免產生沖突,導致通訊失敗。
??? 在硬件上,由于RS-232是負邏輯,其低電平“0”在+5V-+15V之間,高電平“1”在-5V--15V之間。而F2407A用低電壓設計,輸入電壓為3.3V,輸出高電平“1”為2.4-2.8之間,低電平“0”為0.4-0.8之間。顯然,這與RS-232協議不匹配,必須進行電平邏輯轉換。我們就采用Modem的最簡方式(3線制),通信中,雙方都被看作數據終端設備,雙方都可發也可收(全雙工模式)。硬件接口圖如圖3所示。
2.2 軟件實現?
??? 對于上位PC機來說,設定定時中斷每隔20ms通過串行通訊口COM1向下位DSP發送指令,如果發送的是要求下位機發送數據的指令,則等待數據上傳結束,對數據進行校驗,如果校驗出錯,則發送重發指令,繼續等待數據上傳,反復3次,如果還是出錯,顯示通訊失敗,退出中斷。下位DSP接收數據采用查詢的方式,它對接收的數據進行校驗,如果校驗錯誤,置接收狀態數為假。DSP的數據發送則由上位機控制,發送固定長度的數據(包括實時數據以及狀態數據,長度7字節),數據末尾加入校驗數,實現與上位機多機串行通訊。當上位機讀出下位DSP上次接收狀態出錯,則再次重復發送上次的指令。上位機可以采用Visual C++,下位DSP可以采用C語言與匯編語言混合編程,這樣實現起來方便,且效率較高。圖4分別給出上位機的定時中斷與下位DSP接收數據的流程圖。
3 結束語?
??? SCI方法實現成本較低,只需一塊電平邏輯轉換芯片及一根串行通信線,就實現了TMS320LF2407與PC多機串行通信。雖然禁止了奇偶位,但由于采用了基于奇偶校驗的校驗數方法,通過實際運行,測得其誤碼率仍舊在要求范圍內,實現了高速可靠通訊,滿足了實時通訊要求。但也有一定局限性,比如說:由于RS?232協議的限制,通訊距離只有大約15m,沒有沖突檢測與仲裁機制,只有采用PC機對總線訪問進[FL(2K2]行控制,這樣就降低了PC的使用效率以及總線的使用效率。對于這些問題,在以后的研究中可以進一步解決。如,可以采用RS?485協議,增加通訊距離,采用2407A上備有的CAN控制器,通過CAN總線來解決,但實現中也存在一些不足。總的說來,SCI方法實現的多機通訊是一種性價比較高的高速實時通訊方法,有很廣泛的應用領域。
參考文獻?
1 劉和平等編著.TMS320LF240X DSP結構、原理及應用.北京:北京航空航天大學出版社,2002
2 胡廣等.在Windows 98下PC和TMS320LF240的多機串行通訊.電子技術,2001(3)
3 潘名蓮等編著.微計算機原理.北京:電子工業出版社,1994
評論
查看更多