新聞中心

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

        基于CAN總線的分布式顯示控制系統

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

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

        CAN總線初始化設計
        要使SJA1000正常工作,必須先對其作初始化,這是一個重點。對SJA1000的操作是由讀寫其片內的控制寄存器實現的。待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)決定位周期寬度,采樣點位置和在每個采樣點的采樣次數。系統中各節點的BTR0、BTR1應設為相同,否則不能互相通信。輸出控制寄存器OCR決定了不同輸出驅動配置的建立。設置完這些寄存器后,要將SJA1000設為正常工作模式,并按需要使能其相應的中斷位。SJA1000中各控制寄存器的詳細說明和用法可參考文獻1。
        CAN總線通信程序設計
        各節點間的通信可采用中斷方式或查詢方式,本控制系統采用中斷方式通信。各個節點之間的指令、數據交換通過下面這個子程序模塊完成的。
        顯示電路各節點的一個重要組成部分是顯示電路。作為人機交互界面,顯示電路告訴人們系統當前運行信息。顯示電路結構圖如圖3所示。

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


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 景德镇市| 齐河县| 禹城市| 昌邑市| 通辽市| 柞水县| 北海市| 米易县| 康定县| 大悟县| 文登市| 吐鲁番市| 同仁县| 中山市| 台安县| 时尚| 百色市| 梅河口市| 天全县| 长乐市| 水富县| 平湖市| 黄梅县| 宣威市| 大城县| 额尔古纳市| 合水县| 石楼县| 奉化市| 宣威市| 凤山市| 台中县| 深泽县| 托里县| 棋牌| 昌平区| 白朗县| 夏河县| 屏山县| 永丰县| 三江|