新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于CAN總線的分布式顯示控制系統(tǒng)

基于CAN總線的分布式顯示控制系統(tǒng)

作者: 時間:2016-11-28 來源:網(wǎng)絡 收藏
  CAN(Controller Area Network) 即控制器局域網(wǎng)絡,是一種全數(shù)字化、多主和雙向的現(xiàn)場總線。CAN總線數(shù)據(jù)通信具有很高的可靠性、實時性和靈活性,越來越廣泛地應用于各種工業(yè)現(xiàn)場。本分布式顯示控制系統(tǒng)采用CAN控制器SJA1000實現(xiàn)各節(jié)點間遠距離串行通信,得到了很好的效果。系統(tǒng)結構如圖1所示。

主機負責監(jiān)控各個從機,向從機發(fā)布指令,并接收處理從機傳來的檢測數(shù)據(jù)。從機執(zhí)行主機的指令,顯示運行信息,向主機傳送檢測數(shù)據(jù)。CAN接口電路負責各節(jié)點間的串行通信。兩只125Ω電阻作為CAN線路的匹配電阻。本文著重介紹CAN總線的設計使用以及點陣顯示電路的設計原理,其他功能電路的介紹從略。
CAN總線硬件設計
CAN接口電路如圖2所示, SJA1000是PHILIPS公司生產的獨立CAN通信控制器,SJA1000集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,該控制器具有多主結構、總線訪問優(yōu)先權、硬件濾波等特點。PCA82C250是CAN 協(xié)議控制器和物理總線的接口,它可以提供總線的差動發(fā)送能力和接收能力,高速應用可達1M baud,最多可掛110個節(jié)點。

CAN總線初始化設計
要使SJA1000正常工作,必須先對其作初始化,這是一個重點。對SJA1000的操作是由讀寫其片內的控制寄存器實現(xiàn)的。待SJA1000硬件復位完成后,單片機就可以初始化SJA1000,初始化程序如下: INITISJA1000:
RESET:
CONFIG:
OPERATE_MODE:
CONFIG1:
CLR EX0 ;關中斷
MOV DPTR , #0000H
MOV A , #01H
MOVX@DPTR, A ;設置復位請求標志
MOV A , #40H
MOV DPTR , #001FH
MOVX @DPTR , A ;CDR=40H
MOV A , #13H
MOV DPTR , #0004H
MOVX @DPTR , A ;設ACR接受代碼=13H
MOV A , #00H
MOV DPTR , #0005H
MOVX @DPTR , A ;接受屏蔽寄存器(AMR)=00H
MOV A , #01H
MOV DPTR , #0006H
MOVX @DPTR , A ; BTR0=01H
MOV A , #1CH
MOV DPTR , #0007H
MOVX @DPTR , A ; BTR1=1CH
MOV A , #1AH
MOV DPTR , #0008H
MOVX @DPTR , A ; OCR=1AH
MOV A , #00001100B
MOV DPTR , #0001H
MOVX @DPTR , A ; GTS=0, CDO=1, RRB=1
MOV DPTR , #0000H
MOV A , #00011010B
MOVX @DPTR , A ;進入工作模式
SETB EX0 ;開中斷
RET
#p##e#
這里SJA1000的首地址是0000H。只有SJA1000進入復位工作模式,才可以初始化相應的寄存器。時鐘分頻寄存器(CDR)設定值為40H,表示選BasicCAN工作模式,忽略CAN輸入比較器和不用TX1輸出做專用接收中斷輸出。接收代碼寄存器(ACR)和接收屏蔽寄存器(AMR)組成接收過濾器,接收代碼位(AC.7-AC.0),接收屏蔽位(AM.7-AM.0)和信息識別碼的八位(ID.10-ID.3)滿足下述方程,該信息才會被接收:
[(ID.10-ID.3)≡(AC.7-AC.0)] ∨(AM.7-AM.0)≡11111111
總線時序寄存器0(BTR0)可決定波特率預置值和同步跳轉寬度的值,BTR0=01H表示波特率設為250Kbps(用16M晶振)??偩€時序寄存器1(BTR1)決定位周期寬度,采樣點位置和在每個采樣點的采樣次數(shù)。系統(tǒng)中各節(jié)點的BTR0、BTR1應設為相同,否則不能互相通信。輸出控制寄存器OCR決定了不同輸出驅動配置的建立。設置完這些寄存器后,要將SJA1000設為正常工作模式,并按需要使能其相應的中斷位。SJA1000中各控制寄存器的詳細說明和用法可參考文獻1。
CAN總線通信程序設計
各節(jié)點間的通信可采用中斷方式或查詢方式,本控制系統(tǒng)采用中斷方式通信。各個節(jié)點之間的指令、數(shù)據(jù)交換通過下面這個子程序模塊完成的。
顯示電路各節(jié)點的一個重要組成部分是顯示電路。作為人機交互界面,顯示電路告訴人們系統(tǒng)當前運行信息。顯示電路結構圖如圖3所示。

單片機的任務是根據(jù)上位主機的命令產生顯示數(shù)據(jù)及控制信號。16行×64列的LED顯示點陣由點陣塊組成。顯示電路采用1/16掃描方式,顯示點陣的一行對應一路行選通信號,各行的同一列共用一個列選通信號,這樣既滿足顯示要求,又可以簡化電路。行驅動電路主要由74HC163、74HC138、Si4953組成,用以產生行選通信號。74HC163和74HC138構成行譯碼器,在單片機的控制下,從第一行開始按順序選通顯示點陣各行;Si4953是P溝道MOSFET管,作用是提高行信號的驅動能力。在選通某一行后,該行上各個LED是點亮還是熄滅,由各自的列選通信號決定,其它行的LED則全熄滅。顯示電路以這樣方法逐行掃描顯示點陣,只要整個掃描周期足夠快,人們就感覺不到顯示閃爍。
驅動電路由74HC595級聯(lián)組成,前一片74HC595的Q,H引腳連接下一片的SER引腳,各片的SRCLK、SRCLR、RCLK引腳分別并聯(lián)。單片機的RXD口輸出顯示數(shù)據(jù)給第一片74HC595的SER引腳;TXD口發(fā)出移位脈沖將串行數(shù)據(jù)逐位移入74HC595中。在一行數(shù)據(jù)傳輸完后,單片機向各個74HC595的SRCLK引腳發(fā)一個鎖存信號,這行數(shù)據(jù)就被鎖入74HC595的鎖存器中,產生對應輸入數(shù)據(jù)的列選通信號。在該行顯示期間,同時進行下一行顯示數(shù)據(jù)的傳輸,這樣可以縮短掃描周期。
本文介紹的分布式顯示控制系統(tǒng)已應用于電梯控制系統(tǒng)中,其性能穩(wěn)定、可靠。CAN總線的選用提高了本系統(tǒng)的通信效率和可靠性。CAN總線通信具有可靠性高、通信距離遠、速率高、多主結構、錯誤處理能力強等特點,非常適合分布式系統(tǒng)的串行通信。系統(tǒng)中的顯示電路是一個成熟可靠的顯示方案,可根據(jù)這個設計原理,設計出各種規(guī)格要求的點陣顯示屏。


評論


技術專區(qū)

關閉