關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計(jì)

基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2011-07-20 來(lái)源:網(wǎng)絡(luò) 收藏

調(diào)節(jié)多點(diǎn)的控制參數(shù)是一項(xiàng)復(fù)雜的工作,以通信協(xié)議為基礎(chǔ),了一種連接多個(gè)CAN端點(diǎn)的,通過(guò)創(chuàng)建通信協(xié)議,實(shí)現(xiàn)了上位機(jī)與的CAN端點(diǎn)的實(shí)時(shí)數(shù)據(jù)交流。闡述了與上位機(jī)的通信流程。

本文引用地址:http://2s4d.com/article/161789.htm

磁懸浮轉(zhuǎn)向架的懸浮由四組電磁鐵實(shí)現(xiàn),每組電磁鐵都有獨(dú)立的懸浮控制器,控制該點(diǎn)的懸浮與下落。為了獲得最優(yōu)的控制參數(shù),需要在整個(gè)轉(zhuǎn)向架的懸浮過(guò)程中通過(guò)上位機(jī)監(jiān)視軌道與電磁鐵之間的間隙、電磁鐵工作電流等狀態(tài)參數(shù)以及懸浮控制器的控制參數(shù),動(dòng)態(tài)地修改控制參數(shù)以觀察控制效果。

懸浮控制器之間是相互獨(dú)立的,上位機(jī)無(wú)法同時(shí)監(jiān)控多個(gè)懸浮控制器,因此需要找到合理的通信方式使上位機(jī)同時(shí)與所有的控制器連接,使它們之間能夠?qū)崟r(shí)傳遞數(shù)據(jù)。CAN總線是一種有效支持分布式控制和實(shí)時(shí)控制的多主的異步串行通信網(wǎng)絡(luò)。由于CAN總線具有較強(qiáng)的糾錯(cuò)能力,支持差分收發(fā),適合高噪聲環(huán)境,具有較遠(yuǎn)的傳輸距離,在各個(gè)領(lǐng)域中得到了廣泛應(yīng)用。CAN通信協(xié)議規(guī)定通信波特率、每個(gè)位周期的取樣位置和個(gè)數(shù)都可以自行設(shè)定,這保證了用戶在使用過(guò)程中的靈活性。選用CAN總線,無(wú)論是在抗電磁干擾方面還是在實(shí)時(shí)性方面都能夠滿足實(shí)驗(yàn)要求。

圖1

1 硬件端口的

懸浮控制器使用SJA1000作為CAN總線協(xié)議轉(zhuǎn)換芯片。SJA1000是一種獨(dú)立控制器,用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它內(nèi)建BASIC CAN協(xié)議,并提供對(duì)CAN2.0B協(xié)議的支持。通過(guò)對(duì)片內(nèi)寄存器的讀、寫操作,懸浮控制器的核心處理器能夠設(shè)置CAN總線通信模式,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。它的傳輸速度很快,位速率可達(dá)1Mbit/s,可滿足高速大流量實(shí)時(shí)傳輸要求。

SJA1000在邏輯上實(shí)現(xiàn)了傳輸數(shù)據(jù)的編碼和解碼,若要與物理線路連接,必須借助總線驅(qū)動(dòng)器。PCA82C250是協(xié)議控制器與物理鏈路之間的接口,可以用高達(dá)1Mbit/s的位速率在兩條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù),它與SJA1000結(jié)合才能實(shí)現(xiàn)CAN總線通信。

圖1為CAN總線接口電路原理圖。圖中,SJA1000用16MHz的晶振作為基準(zhǔn)時(shí)鐘,數(shù)據(jù)線AD0~AD7與核心控制器的低八位數(shù)據(jù)線相連,在CS、RD、WR的控制下可實(shí)現(xiàn)芯片寄存器的讀寫。RX0和TX0與PCA82C250數(shù)據(jù)輸入引腳相連,作為串行數(shù)據(jù)線。RX1與PCA82C250的參考電壓引腳5相連,向PCA82C250輸出參考電壓。PCA82C250的兩根輸出數(shù)據(jù)線之間加上120Ω的終端電阻,用以匹配線路。

上位機(jī)通過(guò)專用的USBTOCAN轉(zhuǎn)換器實(shí)現(xiàn)PC機(jī)與CAN總線的連接,市場(chǎng)上有很多這類產(chǎn)品,這里不再詳細(xì)說(shuō)明。上位機(jī)主要提供人機(jī)交互界面,顯示狀態(tài)和控制器參數(shù),并完成參數(shù)與程序的下載。

2 通信協(xié)議構(gòu)建

DSP控制器上的CAN總線端口要完成兩項(xiàng)工作:(1)上傳控制器的控制常量和電流、間隙等狀態(tài)參數(shù),送給檢測(cè);(2)讀取上位機(jī)下傳的待修改的控制參數(shù),實(shí)現(xiàn)參數(shù)的在線修改,接收下傳的程序文件,實(shí)現(xiàn)DSP主程序的在線寫入。

過(guò)程中,實(shí)現(xiàn)多DSP系統(tǒng)的在線聯(lián)調(diào)是很有效的調(diào)試手段。這樣,上位PC機(jī)不但能夠采集各控制器的狀態(tài)參數(shù),還能夠?qū)Σ杉臄?shù)據(jù)進(jìn)行整理與顯示,并能實(shí)時(shí)調(diào)整不同控制器的控制參數(shù),最終實(shí)現(xiàn)控制器運(yùn)行程序的遠(yuǎn)程下載。

為實(shí)現(xiàn)CAN總線的數(shù)據(jù)傳送,需要定義參數(shù)包、程序包、命令包三種傳送數(shù)據(jù)包,并分別由0x11、0x22、0x33標(biāo)示出來(lái)。根據(jù)數(shù)據(jù)傳送方向的不同,數(shù)據(jù)包的格式略有差異。考慮到CAN總線上的節(jié)點(diǎn)較多,為避免數(shù)據(jù)傳送過(guò)程中出現(xiàn)混亂的情況,定義數(shù)據(jù)發(fā)送的基本數(shù)據(jù)包大小為8個(gè)字節(jié),即CAN總線一次傳送的最大字節(jié)數(shù)為8。

2.1 下傳數(shù)據(jù)協(xié)議

下傳數(shù)據(jù)包括程序、參數(shù)、命令三種數(shù)據(jù)類型。

2.1.1 參數(shù)數(shù)據(jù)包格式

上位機(jī)需要下傳的數(shù)據(jù)包括控制參數(shù)C1、C2、C3及給定間隙與電流,根據(jù)修改需要,每個(gè)參數(shù)都是單獨(dú)下傳的。下傳數(shù)據(jù)包的大小與CAN的最大有效傳送字節(jié)數(shù)一致,為8個(gè)字節(jié)。第一個(gè)字節(jié)指出數(shù)據(jù)包的類型(用Oxll標(biāo)示),第二個(gè)字節(jié)指出參數(shù)類型(用0xx7標(biāo)示),第三字節(jié)至第八字節(jié)指出傳送的有效數(shù)據(jù),對(duì)應(yīng)上面給定參數(shù)的參數(shù)標(biāo)示依次為0x17、0x27、0x37、0x47、0x57。圖2所示為數(shù)據(jù)包的一般格式。

2.1.2 程序數(shù)據(jù)包格式

FLASH寫入文件較大,一般有幾十K字節(jié)??刂葡到y(tǒng)采用的FLASH芯片AT29C010以128字節(jié)為基本操作單位。為了適應(yīng)芯片,可將文件分成128字節(jié)的數(shù)據(jù)段,并為每個(gè)數(shù)據(jù)段標(biāo)定次序。發(fā)送時(shí),標(biāo)出數(shù)據(jù)段號(hào)及該片數(shù)據(jù)所處段中的位置即可。控制器接收到128字節(jié)后,做一次寫入FLASH操作,數(shù)據(jù)包格式及說(shuō)明見(jiàn)圖3。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉