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