CAN總線(xiàn)及其在UPS網(wǎng)絡(luò )監控系統中的應用
鑒于本系統的要求,ups1、ups2、ups3及顯示監控模塊的控制芯片均采用ti公司生產(chǎn)的tms320f240dsp,can控制器采用philip公司生產(chǎn)的sja1000t。
3.1 dsp與can總線(xiàn)控制器硬件接口
dsp與can控制器sja1000t之間的接口電路如圖3所示。
sja1000t的存儲空間映射在微控制器dsp的i/o空間,對sja1000存儲空間的尋址必須用指令in和out。在intel方式下讀寫(xiě)sja1000時(shí),地址和數據是分時(shí)傳送的,地址在前,數據在后。根據dsp對外設端口的邏輯時(shí)序及sja1000t要求的讀寫(xiě)邏輯時(shí)序,除了dsp的基本讀寫(xiě)引腳we、w/r外,我們還選用a14、a15、is為控制腳,控制sja1000地址空間和數據空間的選通,當a15=1、a14=0時(shí)為地址空間,選通ale和cs;當a15=1、a14=0時(shí)為數據空間,此時(shí)對于dsp來(lái)說(shuō),寫(xiě)則選通sja1000t的wr和cs, 讀則選通sja1000t的rd/w和cs,從而完成了dsp與sja1000t之間的數據傳遞。
另外,由于接收數據采用中斷方式,故在dsp上選用外部中斷xint1作為中斷源,而sja1000t是低有效,故通過(guò)一個(gè)上拉電阻接vcc。
4 can通信網(wǎng)絡(luò )軟件設計
單個(gè)can節點(diǎn)通信的功能主要是將本節點(diǎn)的數據信息傳送給can通信網(wǎng)絡(luò )其它節點(diǎn),以及接收網(wǎng)絡(luò )上其它節點(diǎn)傳送來(lái)的信息。can總線(xiàn)單個(gè)節點(diǎn)的軟件設計主要包括三大部分:can節點(diǎn)初始化、信息的發(fā)送和信息的接收。設計時(shí)將can初始化、發(fā)送信息(數據和遠程幀)設計為子程序,發(fā)送信息采用查詢(xún)方式,接收信息采用中斷方式。
(1) 初始化子程序
sja1000的初始化只有在復位模式下才可以進(jìn)行,初始化主要包括工作方式的設置、接收濾波方式的設置、接收屏蔽寄存器amr和接收代碼寄存器acr的設置、波特率參數設置和中斷允許寄存器ier的設置等。在完成sja1000的初始化設置以后,sja1000就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù),其源程序如下:
data_can .set 0c000h
dress_can .set 8000h
can_start:
ldp #4
splk #0,temp ;控制寄存器(mod)設置
out temp,dress_can
splk #1bh, temp ;復位模式
out temp,data_can ;sja1000進(jìn)行初始化
splk #0, temp
out temp,dress_can
in temp,data_can
bit temp,bit0
bcnd can_reset,ntc
splk #4,canflag ;設置驗收代碼寄存器
out temp,dress_can
splk #01h,canflag
out temp,data_can
splk #5, temp ;設置驗收屏蔽寄存器
out temp,dress_can
splk #000h, temp
out temp,data_can
splk #31, temp ;設置時(shí)鐘分頻寄存器(cdr)
out temp,dress_can
splk #48h, temp ;選擇basiccan模式,關(guān)
;閉時(shí)鐘(clkout)
評論