CAN總線在多機(jī)通信中的應(yīng)用
3.2 發(fā)送程序
此系統(tǒng)采用中斷方式發(fā)送信息,這樣能節(jié)省資源,提高通信效率。需要發(fā)送信息時(shí),先將信息組合成一幀報(bào)文:數(shù)據(jù)幀或遠(yuǎn)程幀。進(jìn)入發(fā)送程序后,首先關(guān)閉中斷,保護(hù)現(xiàn)場(chǎng),讀中斷寄存器是否為發(fā)送中斷,將報(bào)文寫(xiě)入發(fā)送緩沖區(qū),設(shè)置命令寄存器允許發(fā)送,開(kāi)中斷。發(fā)送程序流程圖,如圖4所示。本文引用地址:http://butianyuan.cn/article/156563.htm
3.3 接受程序
此系統(tǒng)仍采用中斷方式接收信息。接收程序比較復(fù)雜,需要對(duì)錯(cuò)誤報(bào)警,接收溢出等情況作進(jìn)一步的處理。信息報(bào)文通過(guò)CAN總線被送入接收緩存器中,接收中斷被置位,處理器從控制器SJA1000T的緩存器內(nèi)讀取信息,再設(shè)置新的接收標(biāo)志,開(kāi)中斷。接收程序流程圖如圖5所示。
4 結(jié)束語(yǔ)
把多個(gè)通信節(jié)點(diǎn)連接到PCI9810-CAN適配卡上的CAN總線,構(gòu)成一個(gè)局部通信網(wǎng)絡(luò),從而實(shí)現(xiàn)PC機(jī)對(duì)多通信節(jié)點(diǎn)的檢控和信息傳送,通信節(jié)點(diǎn)間的高速通信。在實(shí)際中,可以實(shí)現(xiàn)約110個(gè)通信節(jié)點(diǎn)間的通信,但系統(tǒng)比較復(fù)雜,通信效率降低,就需要考慮PCI9810-CAN適配卡和通信節(jié)點(diǎn)的程序改進(jìn)和相應(yīng)算法的應(yīng)用。在多機(jī)通信系統(tǒng)的設(shè)計(jì)過(guò)程中,主要是通過(guò)軟件的編寫(xiě),提高系統(tǒng)的高速傳輸性。
評(píng)論