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