圖4 lin接口電路 在電路中我們設(shè)計(jì)了一個5位的撥碼開關(guān),由于在各個不同的工作系統(tǒng)中,lin總線和can總線的傳輸是不一樣的,這就需要改換軟件,因此在此設(shè)計(jì)中用一個5位的撥碼開關(guān)用于波特率設(shè)置,三位用于lin波特率設(shè)置,兩位用于can波特率設(shè)置。同時為了展示網(wǎng)關(guān)的工作狀態(tài),特意設(shè)計(jì)了工作指示燈,在接收和發(fā)送信號時分別以一定的頻率閃爍,當(dāng)有故障出現(xiàn)時,兩個燈同時點(diǎn)亮。 為增強(qiáng)can節(jié)點(diǎn)的抗干擾能力,單片機(jī)的txdc和rxdc引腳并不是直接與pca82c250a的txd和rxd引腳相連,而是通過高速光耦6n137相連(圖3)。這樣很好的實(shí)現(xiàn)了總線上各個節(jié)點(diǎn)間的電氣隔離,光耦部分電路所采用的兩個電源vcc和vdd必須是完全隔離的,否則采用光耦也就失去了意義。 網(wǎng)關(guān)軟件設(shè)計(jì) 網(wǎng)關(guān)的軟件設(shè)計(jì)主要包括主控程序模塊和can模塊軟件設(shè)計(jì)以及l(fā)in模塊軟件設(shè)計(jì),can模塊軟件設(shè)計(jì)主要有三個子函數(shù),一個是can初始化can_init(),另外兩個是can_re_isr()和can_send()。can_init()主要是設(shè)置can通信的波特率和can基本設(shè)置,
2、圖3、圖4所示。圖2 單片機(jī)電路圖3 can接口電路圖4 lin接口電路 在電路中我們設(shè)計(jì)了一個5位的撥碼開關(guān),由于在各個不同的工作系統(tǒng)中,lin總線和can總線的傳輸是不一樣的,這就需要改換軟件,因此在此設(shè)計(jì)中用一個5位的撥碼開關(guān)用于波特率設(shè)置,三位用于lin波特率設(shè)置,兩位用于can波特率設(shè)置。同時為了展示網(wǎng)關(guān)的工作狀態(tài),特意設(shè)計(jì)了工作指示燈,在接收和發(fā)送信號時分別以一定的頻率閃爍,當(dāng)有故障出現(xiàn)時,兩個燈同時點(diǎn)亮。 為增強(qiáng)can節(jié)點(diǎn)的抗干擾能力,單片機(jī)的txdc和rxdc引腳并不是直接與pca82c250a的txd和rxd引腳相連,而是通過高速光耦6n137相連(圖3)。 這樣很好的實(shí)現(xiàn)了總線上各個節(jié)點(diǎn)間的電氣隔離,光耦部分電路所采用的兩個電源vcc和vdd必須是完全隔離的,否則采用光耦也就失去了意義。