基于lpc1768平臺(tái)的can中繼器及數(shù)據(jù)轉(zhuǎn)發(fā)方法
【專利摘要】本發(fā)明提供了一種基于LPC1768平臺(tái)的CAN中繼器,包括CAN控制器以及分別連接到CAN總線的第一CAN收發(fā)器和第二CAN收發(fā)器;所述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且所述第一CAN收發(fā)器和第二CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;所述CAN控制器還包括數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊;其中:所述數(shù)據(jù)接收模塊,用于以中斷方式接收CAN報(bào)文并存儲(chǔ)到接收緩沖器;所述數(shù)據(jù)發(fā)送模塊,用于將待發(fā)送CAN報(bào)文存入發(fā)送緩沖器,并在CAN總線空閑時(shí)將所述發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。本發(fā)明還提供一種對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)方法。本發(fā)明通過(guò)LPC1768芯片自帶的兩路數(shù)據(jù)收發(fā)通道進(jìn)行CAN報(bào)文轉(zhuǎn)發(fā),簡(jiǎn)化了CAN中繼電路,并提高了數(shù)據(jù)吞吐速度。
【專利說(shuō)明】基于LPC1768平臺(tái)的CAN中繼器及數(shù)據(jù)轉(zhuǎn)發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及CAN數(shù)據(jù)中繼領(lǐng)域,更具體地說(shuō),涉及一種基于LPC1768平臺(tái)的CAN中繼器及數(shù)據(jù)轉(zhuǎn)發(fā)方法。
【背景技術(shù)】
[0002]CAN link協(xié)議是CAN實(shí)時(shí)總線應(yīng)用層協(xié)議,主要用于PLC、變頻器、伺服控制器等產(chǎn)品之間的實(shí)時(shí)控制與高速數(shù)據(jù)交互。在一些專用的CAN控制器中,有一些能夠?qū)崿F(xiàn)CAN數(shù)據(jù)轉(zhuǎn)發(fā)的模塊。這些CAN中繼設(shè)計(jì)大多使用微處理器(MCU)加CAN控制器的雙芯片或者多芯片解決方案。
[0003]上述CAN中繼器的主要具有以下優(yōu)點(diǎn):擴(kuò)大了通信距離;增加了節(jié)點(diǎn)的最大數(shù)目;各個(gè)網(wǎng)段可使用不同的通信速率。
[0004]然而在上述的雙芯片或者多芯片CAN中繼器中,其電路復(fù)雜,微處理器和CAN控制器通過(guò)外部總線進(jìn)行連接。并且該類CAN中繼器對(duì)接收的幀要先存儲(chǔ)后轉(zhuǎn)發(fā),增加了延時(shí),使得數(shù)據(jù)吞吐速度較慢,可靠性比較差。
[0005]此外,上述CAN中繼器中,CAN總線的MAC子層并沒有流量控制功能,當(dāng)網(wǎng)絡(luò)上的負(fù)荷很重時(shí),可能因中繼器中緩沖器的存儲(chǔ)空間不夠而發(fā)生溢出,以致產(chǎn)生幀丟失的現(xiàn)象。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)上述CAN中繼器數(shù)據(jù)吞吐速度慢、可靠性較差的問(wèn)題,提供一種基于LPC1768平臺(tái)的CAN中繼器及數(shù)據(jù)轉(zhuǎn)發(fā)方法。
[0007]本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案是,提供一種基于LPC1768平臺(tái)的CAN中繼器,包括集成到LPC1768芯片的CAN控制器以及分別連接到CAN總線的第一 CAN收發(fā)器和第二 CAN收發(fā)器;所述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且所述第一 CAN收發(fā)器和第二 CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;所述CAN控制器還包括數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊;其中:所述數(shù)據(jù)接收模塊,用于以中斷方式通過(guò)CAN數(shù)據(jù)收發(fā)通道接收CAN報(bào)文并存儲(chǔ)到接收緩沖器;所述數(shù)據(jù)發(fā)送模塊,用于在確認(rèn)接收的CAN報(bào)文需要轉(zhuǎn)發(fā)時(shí)將所述CAN報(bào)文存入發(fā)送緩沖器,并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道將所述發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
[0008]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN中繼器中,所述CAN控制器還包括數(shù)據(jù)重發(fā)模塊,用于以中斷方式檢查各個(gè)發(fā)送緩沖器并在所述發(fā)送緩沖器中具有未發(fā)送的CAN報(bào)文時(shí)對(duì)該CAN報(bào)文進(jìn)行重發(fā)。
[0009]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN中繼器中,所述CAN控制器與第一 CAN收發(fā)器之間設(shè)有第一光電隔離單元,所述CAN控制器與第二 CAN收發(fā)器之間設(shè)有第二光電隔離單元。
[0010]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN中繼器中,所述第一光電隔離單元和第二光電隔離單元分別通過(guò)獨(dú)立的電源供電。[0011]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN中繼器中,所述CAN中繼器還包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集;所述數(shù)據(jù)接收模塊在接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集匹配上后將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
[0012]本發(fā)明還提供一種基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,所述LPC1768平臺(tái)包括集成到LPC1768芯片的CAN控制器以及分別連接到CAN總線的第一 CAN收發(fā)器和第二CAN收發(fā)器;所述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且所述第一 CAN收發(fā)器和第二 CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;該方法包括以下步驟:
[0013](a)以中斷方式通過(guò)CAN數(shù)據(jù)收發(fā)通道接收CAN報(bào)文并存儲(chǔ)到接收緩沖器;
[0014](b)在確認(rèn)接收的CAN報(bào)文需要轉(zhuǎn)發(fā)時(shí)將所述CAN報(bào)文存入發(fā)送緩沖器,并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道將所述發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
[0015]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法中,該方法還包括:通過(guò)中斷方式檢查各個(gè)發(fā)送緩沖器中是否存在未發(fā)送出去的CAN報(bào)文,并在發(fā)送緩沖器存在未發(fā)送的CAN報(bào)文時(shí)重新發(fā)送。
[0016]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法中,所述步驟(b)包括:
[0017](bl)在接收到CAN報(bào)文并確認(rèn)是需要轉(zhuǎn)發(fā)的CAN報(bào)文后,選擇一個(gè)空置的發(fā)送緩沖器設(shè)置標(biāo)識(shí)符并把待發(fā)送CAN報(bào)文裝入;
[0018](b2)置位相應(yīng)的發(fā)送寄存器;
[0019](b3)在所述發(fā)送緩沖器成為最高優(yōu)先級(jí)的發(fā)送緩沖器且CAN總線進(jìn)入空閑狀態(tài)時(shí),將所述發(fā)送緩沖器內(nèi)的CAN報(bào)文通過(guò)第一 CAN收發(fā)通道或第二 CAN收發(fā)通道發(fā)送出去;
[0020](b4)在CAN報(bào)文發(fā)送成功后將所述發(fā)送緩沖器標(biāo)為空置發(fā)送緩沖器。
[0021]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法中,所述CAN中繼器還包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集;所述步驟(a)包括:將接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集進(jìn)行匹配,并在所述標(biāo)識(shí)符與驗(yàn)收濾波器的標(biāo)識(shí)符集匹配上時(shí)將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
[0022]在本發(fā)明所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法中,所述接收緩沖器以先進(jìn)先出隊(duì)列存儲(chǔ)接收的CAN報(bào)文。
[0023]本發(fā)明基于LPC1768平臺(tái)的CAN中繼器及數(shù)據(jù)轉(zhuǎn)發(fā)方法,通過(guò)LPC1768芯片自帶的兩路數(shù)據(jù)收發(fā)通道進(jìn)行CAN報(bào)文轉(zhuǎn)發(fā),簡(jiǎn)化了 CAN中繼電路,并提高了數(shù)據(jù)吞吐速度。
【專利附圖】
【附圖說(shuō)明】
[0024]圖1是本發(fā)明基于LPC1768平臺(tái)的CAN中繼器實(shí)施例的示意圖。
[0025]圖2是本發(fā)明基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法實(shí)施例的流程示意圖。
[0026]圖3是圖2中接收CAN報(bào)文步驟的流程圖。
【具體實(shí)施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0028]如圖1所示,是本發(fā)明基于LPC1768平臺(tái)的CAN中繼器實(shí)施例的示意圖。本實(shí)施例的CAN中繼器包括集成到LPC1768芯片的CAN控制器10以及分別連接到CAN總線的第一CAN收發(fā)器15和第二 CAN收發(fā)器16,并且CAN控制器10具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且第一 CAN收發(fā)器15和第二 CAN收發(fā)器16分別連接到一個(gè)數(shù)據(jù)收發(fā)通道。上述兩個(gè)數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器由CP1768芯片自帶。上述CAN控制器10還包括數(shù)據(jù)發(fā)送模塊12和數(shù)據(jù)接收模塊11,且上述數(shù)據(jù)發(fā)送模塊12和數(shù)據(jù)接收模塊11由運(yùn)行于LP1768芯片的軟件實(shí)現(xiàn)。
[0029]數(shù)據(jù)接收模塊11用于通過(guò)CAN數(shù)據(jù)收發(fā)通道并經(jīng)由第一 CAN收發(fā)器15和第二 CAN收發(fā)器16從CAN總線接收CAN報(bào)文并存儲(chǔ)到接收緩沖器。為了提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,數(shù)據(jù)接收模塊11采用中斷方式接收CAN報(bào)文。具體地,上述接收緩沖器可為三態(tài)FIFO (先入先出)隊(duì)列。
[0030]數(shù)據(jù)發(fā)送模塊12用于在確認(rèn)接收的CAN報(bào)文需要轉(zhuǎn)發(fā)時(shí)將CAN報(bào)文存入發(fā)送緩沖器(即發(fā)送郵箱),并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道并經(jīng)由第一 CAN收發(fā)器或第二 CAN收發(fā)器將發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
[0031]具體地,數(shù)據(jù)發(fā)送模塊12在接收到CAN報(bào)文并確認(rèn)是需要轉(zhuǎn)發(fā)的CAN報(bào)文后,選擇I個(gè)空置的發(fā)送緩沖器設(shè)置標(biāo)識(shí)符,并把待發(fā)送CAN報(bào)文裝入該發(fā)送緩沖器,然后置位相應(yīng)的發(fā)送寄存器(一旦發(fā)送緩沖器不再為空置,數(shù)據(jù)發(fā)送模塊12對(duì)相應(yīng)的發(fā)送寄存器不再有寫的權(quán)限),來(lái)請(qǐng)求發(fā)送并等待成為最高優(yōu)先級(jí)的發(fā)送緩沖器。一旦發(fā)送緩沖器成為最高優(yōu)先級(jí)的發(fā)送緩沖器,其狀態(tài)就變?yōu)轭A(yù)定發(fā)送狀態(tài),并在CAN總線進(jìn)入空閑狀態(tài)時(shí)將該緩沖存儲(chǔ)器中的CAN報(bào)文發(fā)送出去。在緩沖存儲(chǔ)器中的CAN報(bào)文被成功發(fā)送后,該緩沖存儲(chǔ)器馬上變?yōu)榭罩脿顟B(tài)(對(duì)應(yīng)的發(fā)送寄存器復(fù)位)。
[0032]上述基于LPC1768平臺(tái)的CAN中繼器利用LPC1768芯片自帶的兩路CAN數(shù)據(jù)收發(fā)通道,簡(jiǎn)化了 CAN中繼電路。CAN控制器10的三個(gè)發(fā)送緩沖器和兩個(gè)接收緩沖器能夠高效處理接收?qǐng)?bào)文并把CAN報(bào)文及時(shí)轉(zhuǎn)發(fā)出去。
[0033]上述CAN控制器10還可包括數(shù)據(jù)重發(fā)模塊。該數(shù)據(jù)重發(fā)模塊用于以中斷方式(I毫秒)檢查各個(gè)發(fā)送緩沖器是否有沒有被發(fā)出去的CAN報(bào)文(該檢查可以以固定的時(shí)間間隔執(zhí)行),并在發(fā)送緩沖器中具有未發(fā)送的CAN報(bào)文時(shí)對(duì)該CAN報(bào)文進(jìn)行重發(fā)。該數(shù)據(jù)重發(fā)模塊在CAN報(bào)文未及時(shí)轉(zhuǎn)發(fā)時(shí),通過(guò)Ims中斷重發(fā),極大地避免了在CAN總線高負(fù)荷時(shí)幀丟失的情況。
[0034]為了提高在生產(chǎn)現(xiàn)場(chǎng)的抗干擾能力,保證CAN中繼器工作的可靠性,可在CAN控制器10與第一 CAN收發(fā)器15之間設(shè)置第一光電隔離單兀13,在CAN控制器10與第二 CAN收發(fā)器16之間設(shè)置第二光電隔離單元14,實(shí)現(xiàn)CAN節(jié)點(diǎn)之間的電氣隔離。并且,還可采用外加DC/DC電源模塊的方法切斷系統(tǒng)電源的干擾,即第一光電隔離單元13和第二光電隔離單元14分別通過(guò)獨(dú)立的電源供電。
[0035]上述的CAN控制器10還可包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集。數(shù)據(jù)接收模塊11在接收到CAN報(bào)文后,先對(duì)該CAN報(bào)文的標(biāo)識(shí)符進(jìn)行驗(yàn)證,也就是將該接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集匹配,并在標(biāo)識(shí)符匹配上后將該CAN報(bào)文存儲(chǔ)到接收緩沖器。具體地,在CAN控制器10的兩個(gè)CAN數(shù)據(jù)接收通道經(jīng)由第一 CAN收發(fā)器15和第二 CAN收發(fā)器16接收一個(gè)CAN報(bào)文時(shí),數(shù)據(jù)接收模塊11將該CAN報(bào)文的標(biāo)識(shí)符與配置在標(biāo)識(shí)符列表模式下的驗(yàn)收濾波器相比較,如果匹配上,報(bào)文就被存放到相關(guān)聯(lián)的接收緩沖器中,并且所匹配的序號(hào)被存入驗(yàn)收濾波器的匹配序號(hào)中;如果沒有匹配,數(shù)據(jù)接收模塊11將該CAN報(bào)文的標(biāo)識(shí)符接著與配置在屏蔽位模式下的驗(yàn)收濾波器進(jìn)行比較;如果CAN報(bào)文的標(biāo)識(shí)符沒有跟驗(yàn)收濾波器中的任何標(biāo)識(shí)符相匹配,則丟棄該CAN報(bào)文。
[0036]此外,上述CAN控制器10還可包括初始化模塊,該初始化模塊主要用于引腳、中斷、波特率、站號(hào)的配置。
[0037]如圖2所示,是本發(fā)明基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法實(shí)施例的流程示意圖,其中LPC1768平臺(tái)包括集成到LPC1768芯片的CAN控制器以及分別連接到CAN總線的第一 CAN收發(fā)器和第二 CAN收發(fā)器,上述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且第一 CAN收發(fā)器和第二 CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;該方法包括以下步驟:
[0038]步驟S21 =CAN控制器的兩個(gè)CAN數(shù)據(jù)收發(fā)通道分別以中斷方式經(jīng)由第一 CAN收發(fā)器和第二 CAN收發(fā)器接收CAN報(bào)文并存儲(chǔ)到接收緩沖器。通過(guò)中斷方式接收CAN報(bào)文,可提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。具體地,上述接收緩沖器可采用三態(tài)FIFO(先入先出)隊(duì)列。
[0039]步驟S22 =CAN控制器的兩個(gè)CAN數(shù)據(jù)收發(fā)通道在確認(rèn)接收的數(shù)據(jù)需要轉(zhuǎn)發(fā)時(shí)將CAN報(bào)文存入發(fā)送緩沖器(發(fā)送郵箱),并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道并經(jīng)由第一 CAN收發(fā)器和第二 CAN收發(fā)器將發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
[0040]特別地,該步驟具體包括:在接收到數(shù)據(jù)并確認(rèn)是需要轉(zhuǎn)發(fā)的數(shù)據(jù)后,選擇一個(gè)空置的發(fā)送緩沖器設(shè)置標(biāo)識(shí)符并把待發(fā)送數(shù)據(jù)裝入;置位相應(yīng)的發(fā)送寄存器;在發(fā)送緩沖器成為最高優(yōu)先級(jí)的發(fā)送緩沖器且CAN總線進(jìn)入空閑狀態(tài)時(shí),將發(fā)送緩沖器內(nèi)的數(shù)據(jù)經(jīng)由第一 CAN收發(fā)器或第二 CAN收發(fā)器發(fā)送出去;在數(shù)據(jù)發(fā)送成功后將發(fā)送緩沖器標(biāo)為空置發(fā)送緩沖器,并清除相應(yīng)的發(fā)送寄存器的置位標(biāo)識(shí)。
[0041]在CAN控制器進(jìn)行CAN報(bào)文接收和轉(zhuǎn)發(fā)過(guò)程中,上述步驟S21和步驟S22同時(shí)執(zhí)行。
[0042]此外,為了避免了在CAN總線高負(fù)荷時(shí)幀丟失的情況,上述基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法可包括中斷檢查步驟,即通過(guò)Ims中斷方式檢查各個(gè)發(fā)送緩沖器中是否存在未發(fā)送出去的CAN報(bào)文,并在存在未發(fā)送的CAN報(bào)文時(shí)重新發(fā)送。
[0043]上述CAN中繼器還包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集;如圖3所示,是圖2中接收CAN報(bào)文的詳細(xì)流程示意圖,其具體包括:
[0044]步驟S211:在接收到CAN報(bào)文時(shí)判斷是否為第一 CAN數(shù)據(jù)收發(fā)通道中斷,若是則執(zhí)行步驟S212,否則執(zhí)行步驟S215。
[0045]步驟S212:將接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集進(jìn)行匹配,并在CAN報(bào)文的標(biāo)識(shí)符與標(biāo)識(shí)符集匹配上時(shí)確認(rèn)該CAN報(bào)文為有效報(bào)文,并執(zhí)行步驟S213,否則執(zhí)行步驟S214。
[0046]步驟S213:將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
[0047]步驟S214:釋放第一 CAN數(shù)據(jù)收發(fā)通道。[0048]步驟S215:判斷是否為第二CAN數(shù)據(jù)收發(fā)通道中斷,若是則執(zhí)行步驟S216,否則結(jié)束。
[0049]步驟S216:將接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集進(jìn)行匹配,并在CAN報(bào)文的標(biāo)識(shí)符與標(biāo)識(shí)符集匹配上時(shí)確認(rèn)該CAN報(bào)文為有效報(bào)文,并執(zhí)行步驟S217,否則執(zhí)行步驟S218。
[0050]步驟S217:將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
[0051]步驟S218:釋放第二 CAN數(shù)據(jù)收發(fā)通道。
[0052]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種基于LPC1768平臺(tái)的CAN中繼器,其特征在于:包括集成到LPC1768芯片的CAN控制器以及分別連接到CAN總線的第一 CAN收發(fā)器和第二 CAN收發(fā)器;所述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且所述第一 CAN收發(fā)器和第二 CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;所述CAN控制器還包括數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊;其中:所述數(shù)據(jù)接收模塊,用于以中斷方式通過(guò)CAN數(shù)據(jù)收發(fā)通道接收CAN報(bào)文并存儲(chǔ)到接收緩沖器;所述數(shù)據(jù)發(fā)送模塊,用于在確認(rèn)接收的CAN報(bào)文需要轉(zhuǎn)發(fā)時(shí)將所述CAN報(bào)文存入發(fā)送緩沖器,并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道將所述發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
2.根據(jù)權(quán)利要求1所述的基于LPC1768平臺(tái)的CAN中繼器,其特征在于:所述CAN控制器還包括數(shù)據(jù)重發(fā)模塊,用于以中斷方式檢查各個(gè)發(fā)送緩沖器并在所述發(fā)送緩沖器中具有未發(fā)送的CAN報(bào)文時(shí)對(duì)該CAN報(bào)文進(jìn)行重發(fā)。
3.根據(jù)權(quán)利要求1所述的基于LPC1768平臺(tái)的CAN中繼器,其特征在于:所述CAN控制器與第一 CAN收發(fā)器之間設(shè)有第一光電隔離單元,所述CAN控制器與第二 CAN收發(fā)器之間設(shè)有第二光電隔離單元。
4.根據(jù)權(quán)利要求3所述的基于LPC1768平臺(tái)的CAN中繼器,其特征在于:所述第一光電隔離單元和第二光電隔離單元分別通過(guò)獨(dú)立的電源供電。
5.根據(jù)權(quán)利要求1所述的基于LPC1768平臺(tái)的CAN中繼器,其特征在于:所述CAN中繼器還包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集;所述數(shù)據(jù)接收模塊在接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集匹配上后將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
6.一種基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于:所述LPC1768平臺(tái)包括集成到LPC1768芯片的CAN控制器以及分別連接到CAN總線的第一 CAN收發(fā)器和第二 CAN收發(fā)器;所述CAN控制器具有兩個(gè)CAN數(shù)據(jù)收發(fā)通道、兩個(gè)接收緩沖器以及三個(gè)發(fā)送緩沖器且所述第一 CAN收發(fā)器和第二 CAN收發(fā)器分別連接到一個(gè)數(shù)據(jù)收發(fā)通道;該方法包括以下步驟: (a)以中斷方式通過(guò)CAN數(shù)據(jù)收發(fā)通道接收CAN報(bào)文并存儲(chǔ)到接收緩沖器; (b)在確認(rèn)接收的CAN報(bào)文需要轉(zhuǎn)發(fā)時(shí)將所述CAN報(bào)文存入發(fā)送緩沖器,并在CAN總線空閑時(shí)通過(guò)CAN數(shù)據(jù)收發(fā)通道將所述發(fā)送緩沖器中的CAN報(bào)文發(fā)送出去。
7.根據(jù)權(quán)利要求6所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于:該方法還包括:通過(guò)中斷方式檢查各個(gè)發(fā)送緩沖器中是否存在未發(fā)送出去的CAN報(bào)文,并在發(fā)送緩沖器存在未發(fā)送的CAN報(bào)文時(shí)重新發(fā)送。
8.根據(jù)權(quán)利要求6所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于:所述步驟(b)包括: (bl)在接收到CAN報(bào)文并確認(rèn)是需要轉(zhuǎn)發(fā)的CAN報(bào)文后,選擇一個(gè)空置的發(fā)送緩沖器設(shè)置標(biāo)識(shí)符并把待發(fā)送CAN報(bào)文裝入; (b2)置位相應(yīng)的發(fā)送寄存器; (b3)在所述發(fā)送緩沖器成為最高優(yōu)先級(jí)的發(fā)送緩沖器且CAN總線進(jìn)入空閑狀態(tài)時(shí),將所述發(fā)送緩沖器 內(nèi)的CAN報(bào)文通過(guò)第一 CAN收發(fā)通道或第二 CAN收發(fā)通道發(fā)送出去; (b4)在CAN報(bào)文發(fā)送成功后將所述發(fā)送緩沖器標(biāo)為空置發(fā)送緩沖器。
9.根據(jù)權(quán)利要求6所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于:所述CAN中繼器還包括集成到LPC1768芯片的驗(yàn)收濾波器,該驗(yàn)收濾波器中存儲(chǔ)有CAN協(xié)議的標(biāo)識(shí)符集;所述步驟(a)包括:將接收的CAN報(bào)文的標(biāo)識(shí)符與驗(yàn)收濾波器中的標(biāo)識(shí)符集進(jìn)行匹配,并在所述標(biāo)識(shí)符與驗(yàn)收濾波器的標(biāo)識(shí)符集匹配上時(shí)將該CAN報(bào)文存儲(chǔ)到接收緩沖器。
10.根據(jù)權(quán)利要求9所述的基于LPC1768平臺(tái)的CAN數(shù)據(jù)轉(zhuǎn)發(fā)方法,其特征在于:所述接收緩沖器以先進(jìn)先出隊(duì)列存儲(chǔ)接收的CAN報(bào)文。
【文檔編號(hào)】H04L12/40GK104009901SQ201410193734
【公開日】2014年8月27日 申請(qǐng)日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
【發(fā)明者】黃華政 申請(qǐng)人:深圳市匯川控制技術(shù)有限公司