1前言
在新型導(dǎo)彈制導(dǎo)和控制系統(tǒng)中采用總線式的數(shù)據(jù)傳輸方案,,是解決現(xiàn)行的導(dǎo)彈飛行控制系統(tǒng)中,,通過點(diǎn)對(duì)點(diǎn)直接連接的電纜網(wǎng)傳輸模擬信號(hào)造成的結(jié)構(gòu)復(fù)雜、可靠性低,、系統(tǒng)的電磁兼容性與抗毀傷能力等諸多弊病的一個(gè)較好的途徑,。電液伺服機(jī)構(gòu)是導(dǎo)彈控制系統(tǒng)中重要的組成部分。它的性能往往嚴(yán)重影響到導(dǎo)彈的控制精度,,甚至決定飛行的成敗,。在總線式導(dǎo)彈控制系統(tǒng)中,導(dǎo)彈電液伺服機(jī)構(gòu)將作為總線上的一個(gè)節(jié)點(diǎn)掛接在總線上,,因此必須設(shè)計(jì)一個(gè)將總線與電液伺服機(jī)構(gòu)連接起來的接口,。導(dǎo)彈總線式控制系統(tǒng)結(jié)構(gòu)如圖1所示,。
在導(dǎo)彈飛行中,慣性敏感元件獲得導(dǎo)彈的飛行參數(shù)后,,送到彈上計(jì)算機(jī),,經(jīng)過計(jì)算機(jī)運(yùn)算后形成控制指令,指令被送到導(dǎo)彈的電液伺服機(jī)構(gòu),,通過導(dǎo)彈電液伺服機(jī)構(gòu)的作動(dòng)筒的動(dòng)作來控制導(dǎo)彈的飛行彈道,。
1.1 CAN總線
CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò)。CAN總線是一種多主站局部網(wǎng)絡(luò),,能夠有效支持分布式控制系統(tǒng)或?qū)崟r(shí)控制系統(tǒng)的通信功能;它采用雙線串行通信方式工作,。微處理器可通過CAN控制器掛到CAN總線上,它具有較強(qiáng)的檢錯(cuò)功能以及優(yōu)先權(quán)和仲裁功能,,可在高噪聲環(huán)境中使用,,其傳輸速率可高達(dá)1Mb/s。
1.2 PC/104
PC/104是工業(yè)嵌入式PC的機(jī)械電氣標(biāo)準(zhǔn),。它的制定,,為嵌入式應(yīng)用提供了標(biāo)準(zhǔn)的系統(tǒng)平臺(tái)。PC/104總線與PC/AT總線(ISA)完全兼容,。它符合IEEE-P996標(biāo)準(zhǔn),,所有信號(hào)電平與TTL兼容。PC/104模塊一般提供6mA的總線驅(qū)動(dòng)能力,,可驅(qū)動(dòng)15個(gè)低功耗的TTL負(fù)載,。與普通的工業(yè)控制機(jī)相比,PC/104總線具有如下特點(diǎn):
?、貾C/104模塊與PC機(jī)軟,、硬件完全兼容,可以利用現(xiàn)有的較豐富和成熟的硬件,、軟件開發(fā)工具及方法,、設(shè)計(jì)知識(shí)等資源,開發(fā)周期短,,成本低,。
②PC/104模塊體積小,,功耗低,,無需散熱,可層疊,,具有系統(tǒng)級(jí)的性能,,芯片級(jí)的大小。
?、勰K之間采用獨(dú)特的縱向?qū)盈B或側(cè)向接插的結(jié)合方式,,模塊層疊后四角還有支柱和螺釘固定,,可靠性高,配置靈活方便,,便于故障的排除和修理,。
④外圍模塊齊全,,用戶可以選擇各種不同的功能模塊,,設(shè)計(jì)滿足不同需要的專用系統(tǒng)。
?、莨ぷ鳒囟确秶鷮?,一般在0-70度。
?、薮蠖鄶?shù)模塊采用單+5V電源,,降低了系統(tǒng)對(duì)電源的要求。
2 接口硬件設(shè)計(jì)
根據(jù)實(shí)際系統(tǒng)的要求,,本接口的功能主要是:實(shí)現(xiàn)與彈上計(jì)算機(jī)的通信,,在控制系統(tǒng)中作為一個(gè)終端接收彈上計(jì)算機(jī)傳來的指令和數(shù)據(jù),進(jìn)行控制算法的運(yùn)算及執(zhí)行D/A,、A/D轉(zhuǎn)換,并將伺服機(jī)構(gòu)的運(yùn)動(dòng)信息和狀態(tài)數(shù)據(jù)傳輸給彈上計(jì)算機(jī),。
接口與CAN總線之間的傳輸介質(zhì)采用屏蔽雙絞線,,接口硬件采用基于PC/104總線標(biāo)準(zhǔn)的模塊,主要有:D/A和A/D模塊,、處理器模塊,、外部存儲(chǔ)模塊、雙向驅(qū)動(dòng)及時(shí)序控制模塊,、CAN總線通信模塊,。如圖2所示。
1)D/A模塊
在本設(shè)計(jì)中,,我們選擇美國(guó)AD公司的AD7547數(shù)模轉(zhuǎn)換器,。它是一種雙12位電流輸出的DACS(數(shù)據(jù)收集與控制系統(tǒng)),具有以下特點(diǎn):較寬的工作電壓(12-15V);抗電源電壓干擾性能好;緊湊的封裝形式(24腳0.3英寸DIP封裝);低增益誤差,。它可以和大多數(shù)的微處理器配合使用,,能夠兼容TTL、CMOS電平,。通過獨(dú)立的參考電壓和反饋電阻,,還能夠提供四象限的乘法器功能。其內(nèi)部主要包括三個(gè)部分:控制邏輯電路,、A路數(shù)模轉(zhuǎn)換電路和B路數(shù)模轉(zhuǎn)換電路,。其中邏輯控制電路通過簡(jiǎn)單的三個(gè)控制信號(hào):CSA,,CSB及WR來選擇相應(yīng)的模數(shù)轉(zhuǎn)換器,同時(shí)鎖存需要轉(zhuǎn)換的數(shù)據(jù),。A路數(shù)模轉(zhuǎn)換電路的基本控制原理為:通過CSA與WR控制信號(hào),,將12位的轉(zhuǎn)換數(shù)據(jù)一次鎖存入A路轉(zhuǎn)換電路的數(shù)據(jù)寄存器中,A路轉(zhuǎn)換電路開始進(jìn)行數(shù)模轉(zhuǎn)換,,將轉(zhuǎn)換后的模擬量輸出,。B路轉(zhuǎn)換電路的控制原理與A路類似。
2)A/D模塊
A/D模塊將導(dǎo)彈電液伺服機(jī)構(gòu)位移檢測(cè)裝置輸出的反饋信號(hào)轉(zhuǎn)化為數(shù)字量以便于計(jì)算機(jī)進(jìn)行處理,。系統(tǒng)的控制精度在很大程度上取決于檢測(cè)反饋裝置的精度,。根據(jù)伺服機(jī)構(gòu)的反饋參數(shù)和系統(tǒng)性能指標(biāo)要求,本設(shè)計(jì)中采用美國(guó)AD公司生產(chǎn)的AD674A模數(shù)轉(zhuǎn)換芯片,。它是一個(gè)12位逐次逼近型快速A/D轉(zhuǎn)換器,,轉(zhuǎn)換速度最大為15微秒。AD674A片內(nèi)配有三態(tài)輸出緩沖器電路,,因而可以直接與各種典型的8位或16位處理器相連,,而無須附加邏輯接口電路,且能與CMOS及TTL電平兼容,。
3)處理器模塊
本設(shè)計(jì)中處理器采用PC/104嵌入式計(jì)算機(jī),,因?yàn)樗哂泻芸斓倪\(yùn)算速度,所以它主要為接口提供高速的數(shù)據(jù)運(yùn)算與處理功能,,這些數(shù)據(jù)包括彈上計(jì)算機(jī)通過總線送來的控制數(shù)據(jù)和通過模數(shù)轉(zhuǎn)換模塊采集的位移檢測(cè)裝置的輸出量,,處理器將它們進(jìn)行處理和綜合,形成輸出量來控制作動(dòng)筒的動(dòng)作,。
4)雙向驅(qū)動(dòng)及時(shí)序控制模塊
CAN控制器SJA1000的地址總線和數(shù)據(jù)總線是按照INTEL的8位單片機(jī)總線規(guī)范設(shè)計(jì)的,,與PC/104總線不能直接相連,中間要經(jīng)過雙向總線驅(qū)動(dòng)電路和時(shí)序轉(zhuǎn)換電路進(jìn)行兩種總線信號(hào)的切換,,即將PC/104總線的數(shù)據(jù)總線和I/O地址總線經(jīng)過總線驅(qū)動(dòng)器和時(shí)序轉(zhuǎn)換變成SJA1000的數(shù)據(jù)/地址復(fù)用總線,,這里邊有一個(gè)關(guān)鍵的時(shí)序切換問題??刂瓶偩€的信號(hào)也要經(jīng)過相應(yīng)的轉(zhuǎn)換才能驅(qū)動(dòng)總線控制器SJA1000,。轉(zhuǎn)換電路原理框圖如圖3所示。
圖3中細(xì)實(shí)線表示數(shù)據(jù)線和地址線,,粗實(shí)線表示控制線,,細(xì)虛線表示片選信號(hào)。
在本設(shè)計(jì)中,,數(shù)據(jù)總線和地址總線分別通過兩個(gè)八總線收發(fā)送器74HC245連接到CAN控制器SJA1000的數(shù)據(jù),、地址復(fù)用總線上。74HC245是8位的總線收發(fā)送器,具有三態(tài)輸出,,可以進(jìn)行雙向的數(shù)據(jù)傳送。這中間用可編程邏輯芯片GAL16V8設(shè)計(jì)了一個(gè)時(shí)序控制邏輯電路,,控制兩片74HC245的工作,,進(jìn)行時(shí)序切換,,并避免數(shù)據(jù)和地址產(chǎn)生可能的沖突。片選信號(hào)是由一片74H688產(chǎn)生的,,74H688是一個(gè)8位的數(shù)值比較器/等值檢測(cè)器,。通過波段開關(guān)來設(shè)定I/O地址,,用74HC688來比較PC/104總線上的地址信息和設(shè)定的I/O地址是否相同,如相同則對(duì)SJA1000產(chǎn)生片選信號(hào),??刂瓶偩€的信號(hào)切換也是由可編程邏輯芯片GAL16V8來實(shí)現(xiàn)的,。
5)通信模塊
CAN總線通信模塊由CAN控制器SJA1000、光電隔離器6N137,、CAN收發(fā)器82C250組成,,如圖4所示,。
a)SJA1000是PHILIP公司生產(chǎn)的標(biāo)準(zhǔn)CAN總線控制器,,它在軟硬件設(shè)計(jì)上完全兼容基本CAN總線控制器PCA82C200,具有和它完全兼容的引腳和協(xié)議CAN2.0A,,二者可以替換,。另外,,它還支持總線擴(kuò)展協(xié)議集CAN2.0B。它有兩種工作模式:基本模式和擴(kuò)展模式,。在基本模式下,,它有32個(gè)工作寄存器,,而在擴(kuò)展模式下,它有127個(gè)工作寄存器,。本設(shè)計(jì)選用基本工作模式,,即支持CAN2.0A協(xié)議,。CAN控制器一方面具有與微控制器接口的功能,另一方面還能完成CAN通信協(xié)議所要求的全部功能,。
b)82C250是CAN總線收發(fā)器,,它是控制器和物理總線間的接口,。CAN控制器的傳送和接收端不允許與總線直接相連,,原因是:當(dāng)網(wǎng)絡(luò)內(nèi)某個(gè)節(jié)點(diǎn)未加電或發(fā)生故障時(shí),,將影響整個(gè)網(wǎng)絡(luò)的正常工作,。另外,,若總線出現(xiàn)短路故障時(shí),,CAN控制器的輸出驅(qū)動(dòng)器有可能損壞,。所以,,在實(shí)現(xiàn)應(yīng)用中必須在CAN控制器與總線之間設(shè)置一個(gè)接口電路,。82C250能提供對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力。82C250還具有很強(qiáng)的驅(qū)動(dòng)能力,,能增大通信距離(最遠(yuǎn)可達(dá)10Km),,可以進(jìn)行斜率控制以降低射頻干擾,,具有瞬間抗干擾能力,。它有三種工作模式:高速模式、斜率控制模式和待機(jī)模式,。本設(shè)計(jì)中采用了斜率控制模式,,通過在8引腳上接一個(gè)18歐姆的電阻來控制總線上的斜率,。
c)6N137是一個(gè)TI公司生產(chǎn)的高速光電隔離器,,它具有較高的速度,,可以滿足系統(tǒng)的要求,,采用光電隔離電路以后,,總線驅(qū)動(dòng)器與總線控制器分別供電,,隔斷了二者的電氣連接,進(jìn)一步提高了抗干擾性能,。
3 接口軟件設(shè)計(jì)
伺服機(jī)構(gòu)與CAN總線接口軟件的主要任務(wù)有:初始化,、接收總線信息、向總線發(fā)送信息,、受理中斷,、數(shù)據(jù)運(yùn)算與輸入輸出控制。伺服機(jī)構(gòu)傳感器采集的信號(hào)存入指定發(fā)送子地址的數(shù)據(jù)緩沖區(qū)內(nèi),,從彈上計(jì)算機(jī)接收的指令和數(shù)據(jù)則存入指定的接收子地址的數(shù)據(jù)緩沖區(qū)內(nèi),。當(dāng)接口收到彈上計(jì)算機(jī)的控制指令后,開始對(duì)伺服機(jī)構(gòu)進(jìn)行控制,。
初始化程序設(shè)計(jì)是本接口設(shè)計(jì)中重要的一個(gè)環(huán)節(jié),。在系統(tǒng)上電復(fù)位后,首先確定微處理器的設(shè)置,,然后在SJA復(fù)位后,,需要確定與通信有關(guān)的參數(shù),包括總線定時(shí),、各種寄存器和工作模式等,。在系統(tǒng)運(yùn)行過程中,也可以發(fā)出一個(gè)復(fù)位請(qǐng)求,,根據(jù)實(shí)現(xiàn)情況重新確定系統(tǒng)的通信參數(shù),。其初始化程序主要步驟有:
1)初始化微處理器,同時(shí)關(guān)閉與CAN控制器相連的外部中斷,。
2)檢查復(fù)位端,,若進(jìn)行復(fù)位狀態(tài),則設(shè)置通信參數(shù),,包括:工作模式,、時(shí)鐘驅(qū)動(dòng)寄存器、接收碼寄存器,、輸出控制寄存器,、接收屏蔽寄存器和總線定時(shí)等。
3)檢查復(fù)位請(qǐng)求位,,若復(fù)位請(qǐng)求位為低,,則系統(tǒng)進(jìn)入正常工作狀態(tài),開微處理器的外部中斷以及CAN控制器本身的中斷,。
初始化程序流程圖如圖5所示,。
CAN總線報(bào)文數(shù)據(jù)的接收是由控制器根據(jù)CAN總線通信協(xié)議自主完成的。接收到的數(shù)據(jù)被放入接收緩存,,然后狀態(tài)寄存器的“接收緩存狀態(tài)”標(biāo)志位將被置位,,同時(shí),中斷寄存器的“接收中斷”標(biāo)志位也被置位,。微處理器必須讀出接收到的數(shù)據(jù),,同時(shí)釋放接收緩存。報(bào)文的接收過程可以采用中斷方式,,也可以通過查詢的方式實(shí)現(xiàn),。
本設(shè)計(jì)中采用查詢方式實(shí)現(xiàn)數(shù)據(jù)的接收。如圖6所示為查詢方式的流程圖,。CAN控制器的接收中斷標(biāo)志被關(guān)閉,。微處理器讀取CAN控制器的狀態(tài)寄存器的“接收緩存狀態(tài)”標(biāo)志位,檢查是否有數(shù)據(jù)到來,。如果緩沖區(qū)為空,,表示沒有接收到數(shù)據(jù),微處理器便轉(zhuǎn)到其它工作上去,,直到下一輪檢查,。如果緩沖區(qū)滿,則表示有數(shù)據(jù)放入緩存,。微處理器可以根據(jù)報(bào)文信息讀取緩沖區(qū)的數(shù)據(jù),,之后需要設(shè)置命令寄存器的“釋放緩存標(biāo)志”,通知SJA1000釋放接收緩存,,完成接收,,并進(jìn)行相應(yīng)的數(shù)據(jù)處理。但由于接收緩存中的報(bào)文不一定只是一個(gè),,因此必須重新檢查接收緩存,,直到接收緩存為空為止。否則,,由于接收緩存的大小有限,,將會(huì)出現(xiàn)緩沖區(qū)溢出的現(xiàn)象。循環(huán)查詢的時(shí)間必須足夠快,,以避免報(bào)文丟失,。
4 結(jié)束語(yǔ)
本設(shè)計(jì)很好地解決了導(dǎo)彈伺服機(jī)構(gòu)與CAN總線的連接和通信問題,大大減輕了原系統(tǒng)的重量,,增強(qiáng)了信號(hào)傳遞的抗干擾性,,提高了伺服機(jī)構(gòu)的控制精度,另外,,PC/104的模塊化結(jié)構(gòu)使得接口的通用性和可維修性也顯著提高,。