一種can總線通信的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種CAN總線通信的方法及裝置。
【背景技術(shù)】
[0002] CAN(ControllerAreaNetwork,控制器局域網(wǎng)絡(luò))總線作為現(xiàn)場總線可以有效支 持分布式控制或?qū)崟r(shí)控制的串行通信,現(xiàn)已廣泛應(yīng)用于工業(yè)自動(dòng)化、汽車、船舶、醫(yī)療設(shè)備、 工業(yè)設(shè)備等方面。與一般通信總線相比,CAN總線的數(shù)據(jù)通信具有更強(qiáng)的可靠性、實(shí)時(shí)性及 靈活性。
[0003] 但是,有些系統(tǒng)中不支持CAN總線的數(shù)據(jù)通信。舉例來說,中標(biāo)麒麟作為國產(chǎn)操作 系統(tǒng)也已廣泛應(yīng)用于政府及軍工企業(yè),在國產(chǎn)操作系統(tǒng)下通過CAN總線實(shí)現(xiàn)數(shù)據(jù)的傳輸與 監(jiān)控不僅需要購買昂貴的USB轉(zhuǎn)CAN總線的設(shè)備,而且還需要自行開發(fā)設(shè)備驅(qū)動(dòng)。通過上 述描述可見,現(xiàn)有技術(shù)中,針對不支持CAN總線數(shù)據(jù)通信的系統(tǒng),要在該系統(tǒng)中實(shí)現(xiàn)CAN總 線數(shù)據(jù)通信比較復(fù)雜。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供了一種CAN總線通信的方法及裝置,能夠更加簡單的實(shí)現(xiàn) CAN總線通信。
[0005] 第一方面,本發(fā)明提供了一種CAN總線通信的方法,包括:
[0006] 在主機(jī)的USB總線上掛載用于USB總線與UART總線轉(zhuǎn)換的第一芯片,在所述主機(jī) 中配置用于UART總線與CAN總線轉(zhuǎn)換的第二芯片,還包括:
[0007] S1 :通過USB總線將待傳輸數(shù)據(jù)發(fā)送給所述第一芯片;
[0008] S2 :通過所述第一芯片將所述待傳輸數(shù)據(jù)轉(zhuǎn)換為UART總線數(shù)據(jù),通過UART總線將 所述UART總線數(shù)據(jù)發(fā)送給所述第二芯片;
[0009] S3 :通過所述第二芯片將所述UART總線數(shù)據(jù)轉(zhuǎn)換為CAN協(xié)議幀,將所述CAN協(xié)議 幀通過所述CAN總線傳輸。
[0010] 進(jìn)一步地,在所述S1之前,還包括:
[0011] 識(shí)別所述第一芯片,生成所述第一芯片對應(yīng)的/dev/ttyUSBO文件,接收第一配置 命令,根據(jù)所述第一配置命令,對所述/dev/ttyUSBO文件進(jìn)行修改,實(shí)現(xiàn)對所述UART總線 的通信速率、流控方式、數(shù)據(jù)位、停止位、校驗(yàn)位的配置。
[0012] 進(jìn)一步地,在所述S1之前,還包括:
[0013] 接收第二配置命令,根據(jù)所述第二配置命令,打開CAN總線中用于傳輸數(shù)據(jù)的CAN 通道;
[0014] 所述S3中,所述將所述CAN協(xié)議幀通過所述CAN總線傳輸,包括:
[0015] 將所述CAN協(xié)議幀在CAN總線的打開的CAN通道上傳輸。
[0016] 進(jìn)一步地,所述S3中,所述通過所述第二芯片將所述UART總線數(shù)據(jù)轉(zhuǎn)換為CAN協(xié) 議幀,包括:
[0017] 將待傳輸數(shù)據(jù)以8位為一幀,在幀頭處添加幀識(shí)別碼、通道識(shí)別碼、幀類別及格式 碼、幀ID,在幀尾添加對數(shù)據(jù)位的校驗(yàn)和,生成所述CAN協(xié)議幀。
[0018] 第二方面,本發(fā)明提供了一種CAN總線通信的方法,包括:
[0019] 在主機(jī)的USB總線上掛載用于USB總線與UART總線轉(zhuǎn)換的第一芯片,在所述主機(jī) 中配置用于UART總線與CAN總線轉(zhuǎn)換的第二芯片,還包括:
[0020] A1 :通過CAN總線接收外部發(fā)來的CAN協(xié)議幀,并通過CAN總線將所述CAN協(xié)議幀 發(fā)送給所述第二芯片;
[0021 ] A2 :通過所述第二芯片將所述CAN協(xié)議幀轉(zhuǎn)換為UART總線數(shù)據(jù),通過UART總線將 所述UART總線數(shù)據(jù)發(fā)送給所述第一芯片;
[0022] A3 :通過所述第一芯片將所述UART總線數(shù)據(jù)轉(zhuǎn)換為USB總線數(shù)據(jù),在USB總線上 傳輸所述USB總線數(shù)據(jù)。
[0023] 進(jìn)一步地,在所述A1之前,還包括:
[0024] 識(shí)別所述第一芯片,生成所述第一芯片對應(yīng)的/dev/ttyUSBO文件,接收第一配置 命令,根據(jù)所述第一配置命令,對所述/dev/ttyUSBO文件進(jìn)行修改,實(shí)現(xiàn)對所述UART總線 的通信速率、流控方式、數(shù)據(jù)位、停止位、校驗(yàn)位的配置。
[0025] 進(jìn)一步地,在所述A1之前,還包括:
[0026] 接收第二配置命令,根據(jù)所述第二配置命令,打開CAN總線中用于傳輸數(shù)據(jù)的CAN 通道;
[0027] 所述A1包括,包括:
[0028] 通過CAN總線的所述CAN通道接收外部發(fā)來的CAN協(xié)議幀,并通過CAN總線的CAN 通道將所述CAN協(xié)議幀發(fā)送給所述第二芯片。
[0029] 進(jìn)一步地,在所述A1之前,還包括:設(shè)置UART的緩沖區(qū);
[0030] 所述A1包括:將所述CAN總線接收的所述CAN協(xié)議幀添加到所述UART的緩沖區(qū) 中,從所述UART的緩沖區(qū)中獲取所述CAN協(xié)議幀,將獲取的CAN協(xié)議幀發(fā)送通過CAN總線 發(fā)送給所述第二芯片。
[0031] 進(jìn)一步地,在所述A2中,所述通過所述第二芯片將所述CAN協(xié)議幀轉(zhuǎn)換為UART總 線數(shù)據(jù),包括:
[0032] 從所述CAN協(xié)議幀中提取數(shù)據(jù)位,將所述數(shù)據(jù)位轉(zhuǎn)換為所述UATR總線數(shù)據(jù)。
[0033] 第三方面,本發(fā)明提供了一種CAN總線通信的裝置,包括:
[0034] 第一配置單元,用于在主機(jī)的USB總線上掛載用于USB總線與UART總線轉(zhuǎn)換的第 一芯片,在所述主機(jī)中配置用于UART總線與CAN總線轉(zhuǎn)換的第二芯片;
[0035] 第一USB總線傳輸單元,用于通過USB總線將待傳輸數(shù)據(jù)發(fā)送給所述第一芯片;
[0036] 第一UART總線傳輸單元,用于通過所述第一芯片將所述待傳輸數(shù)據(jù)轉(zhuǎn)換為UART 總線數(shù)據(jù),通過UART總線將所述UART總線數(shù)據(jù)發(fā)送給所述第二芯片;
[0037] 第一CAN總線傳輸單元,用于通過所述第二芯片將所述UART總線數(shù)據(jù)轉(zhuǎn)換為CAN 協(xié)議幀,將所述CAN協(xié)議幀通過所述CAN總線傳輸。
[0038] 第四方面,本發(fā)明提供了一種CAN總線通信的裝置,包括:
[0039] 第二配置單元,用于在主機(jī)的USB總線上掛載用于USB總線與UART總線轉(zhuǎn)換的第 一芯片,在所述主機(jī)中配置用于UART總線與CAN總線轉(zhuǎn)換的第二芯片;
[0040] 第二CAN總線傳輸單元,用于通過CAN總線接收外部發(fā)來的CAN協(xié)議幀,并通過 CAN總線將所述CAN協(xié)議幀發(fā)送給所述第二芯片;
[0041] 第二UART總線傳輸單元,用于通過所述第二芯片將所述CAN協(xié)議幀轉(zhuǎn)換為UART 總線數(shù)據(jù),通過UART總線將所述UART總線數(shù)據(jù)發(fā)送給所述第一芯片;
[0042] 第二USB總線傳輸單元,用于通過所述第一芯片將所述UART總線數(shù)據(jù)轉(zhuǎn)換為USB 總線數(shù)據(jù),在USB總線上傳輸所述USB總線數(shù)據(jù)。
[0043] 進(jìn)一步地,還包括:設(shè)置單元,用于設(shè)置UART的緩沖區(qū);
[0044] 所述第二CAN總線傳輸單元,用于將所述CAN總線接收的所述CAN協(xié)議幀添加到 所述UART的緩沖區(qū)中,從所述UART的緩沖區(qū)中獲取所述CAN協(xié)議幀,將獲取的CAN協(xié)議幀 發(fā)送通過CAN總線發(fā)送給所述第二芯片。
[0045] 在本發(fā)明提供的一種CAN總線通信的方法及裝置中,在主機(jī)上分別設(shè)置第一芯片 和第二芯片,通過第一芯片將待傳輸數(shù)據(jù)轉(zhuǎn)換為UART總線數(shù)據(jù),將UART總線數(shù)據(jù)通過第二 芯片轉(zhuǎn)換為CAN數(shù)據(jù)幀,將CAN數(shù)據(jù)幀在CAN總線中傳輸,實(shí)現(xiàn)CAN總線的數(shù)據(jù)通信,該實(shí) 施例提供的方法中,無需對CAN總線編寫復(fù)雜的驅(qū)動(dòng)程序,能夠更加簡單的實(shí)現(xiàn)CAN總線通 ?目。
【附圖說明】
[0046] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明 的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。
[0047] 圖1是本發(fā)明一實(shí)施例提供的一種CAN總線通信的方法的流程圖;
[0048] 圖2是本發(fā)明一實(shí)施例提供的另一種CAN總線通信的方法的流程圖;
[0049] 圖3是本發(fā)明一實(shí)施例提供的又一種CAN總線通信的方法的流程圖;
[0050] 圖4是本發(fā)明一實(shí)施例提供的再一種CAN總線通信的方法的流程圖;
[0051] 圖5是本