當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信網(wǎng)絡(luò)
[導(dǎo)讀] LPC2294是PHILIPS公司推出的一款功能強(qiáng)大、超低功耗且具有ARM7TDMI內(nèi)核的32位微控制器。它具有豐富的片上資源,完全可以滿(mǎn)足一般的工業(yè)控制需要,同時(shí)還可以減少系統(tǒng)硬件設(shè)計(jì)的復(fù)雜度

LPC2294是PHILIPS公司推出的一款功能強(qiáng)大、超低功耗且具有ARM7TDMI內(nèi)核的32位微控制器。它具有豐富的片上資源,完全可以滿(mǎn)足一般的工業(yè)控制需要,同時(shí)還可以減少系統(tǒng)硬件設(shè)計(jì)的復(fù)雜度,提高系統(tǒng)的穩(wěn)定性。

CAN(“Controller Area Network”)總線控制器局域網(wǎng)是一種能有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。CAN總線以其高性能、高可靠性、廉價(jià)等特性,越來(lái)越受到人們的重視和青睞。為了有效的管理工業(yè)現(xiàn)場(chǎng)的CAN節(jié)點(diǎn),充分發(fā)揮CAN總線的性能,通信卡的設(shè)計(jì)與研究十分必要。但目前市場(chǎng)上類(lèi)似產(chǎn)品存在著兩點(diǎn)不足。

首先是一般工業(yè)現(xiàn)場(chǎng)中可能擁有不止1條CAN總線,而目前設(shè)計(jì)的通信卡上的CAN的接口太少,因而會(huì)給設(shè)備的集中管理帶來(lái)困難。

二是目前兩條CAN網(wǎng)段問(wèn)的通信主要通過(guò)一對(duì)一CAN總線網(wǎng)橋來(lái)實(shí)現(xiàn),但這種方式解決不了工業(yè)現(xiàn)場(chǎng)中同時(shí)在幾條CAN網(wǎng)段問(wèn)傳輸數(shù)據(jù)的需求,也容易導(dǎo)致組網(wǎng)混亂。

為此,本設(shè)計(jì)選用的ARM控制器LPC2294內(nèi)部集成有四路CAN控制器,完全符合CAN規(guī)范CAN2.0B標(biāo)準(zhǔn)和ISO11989-1標(biāo)準(zhǔn)。全局驗(yàn)收過(guò)濾器可識(shí)別幾乎所有總線的11位和29位Rx標(biāo)識(shí)符。作為本設(shè)計(jì)的核心部件,LPC2294的使用能夠很好地解決上述2個(gè)問(wèn)題,它不僅能擔(dān)起主控制器的工作,同時(shí)還可作為CAN網(wǎng)絡(luò)的數(shù)據(jù)傳輸控制器,來(lái)與網(wǎng)絡(luò)中的節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)交換。

1 、硬件設(shè)計(jì)方案

目前計(jì)算機(jī)的發(fā)展,除了少數(shù)專(zhuān)門(mén)的工控機(jī)還在使用ISA總線以外,PC機(jī)上使用最為普遍的就是PCI總線了。PCI總線是Intel公司推出的一種高性能32/64位PC機(jī)局部總線,可能同時(shí)支持多組外圍沒(méi)備而不受制于處理器,其數(shù)據(jù)吞吐量很大(33 MHz總線頻率、32位傳輸時(shí),其峰值可高達(dá)132 MB/s),PCI總線依靠其優(yōu)越的性能必將取代ISA總線。因此,本文基于PCI總線來(lái)設(shè)計(jì)一個(gè)帶有4個(gè)CAN總線網(wǎng)段的智能通信卡。圖1是該通信卡的整體硬件結(jié)構(gòu)圖。

1.1 PCI總線接口的實(shí)現(xiàn)

PCI總線具有非常嚴(yán)格的規(guī)范,也具有良好的兼容性。但是PCI總線協(xié)議也比較復(fù)雜。本設(shè)計(jì)選用專(zhuān)用的PCI總線接口芯片PCI9030來(lái)實(shí)現(xiàn)網(wǎng)關(guān)的PCI總線接口。PCI9030是PLX公司開(kāi)發(fā)的低價(jià)格PCI總線從模式接口芯片。該芯片功耗低,符合PCI2.2規(guī)范,用戶(hù)設(shè)計(jì)時(shí)只需考慮局部總線一側(cè)的邏輯控制電路和用于配置的外部EEP-ROM,而不必考慮PCI協(xié)議的具體實(shí)現(xiàn)方法,這樣就大大簡(jiǎn)化了設(shè)計(jì)難度,縮短了開(kāi)發(fā)周期。

PCI9030要求有一塊EEPROM作為初始化存儲(chǔ)器。在系統(tǒng)加載時(shí),PCI9030先從該EEPROM中加載初始數(shù)據(jù),進(jìn)行初始設(shè)置,因此,EEP-ROM中的信息是否正確決定了PCI卡的加載和運(yùn)行是否正常。本設(shè)計(jì)選用ST93CS56作為PCI9030的初始化存儲(chǔ)器,其結(jié)構(gòu)方案如圖2所示。

1.2 CAN總線接口的實(shí)現(xiàn)

該通信卡中CAN總線接口部分實(shí)現(xiàn)有以下兩種常用的方法:

(1) 獨(dú)立CAN總線控制芯片實(shí)現(xiàn)

即采用飛利浦公司的SJA1000獨(dú)立CAN控制器來(lái)實(shí)現(xiàn)CAN協(xié)議。這種方法的優(yōu)點(diǎn)是能實(shí)現(xiàn)較復(fù)雜的功能,靈活性也不錯(cuò),但由于它是獨(dú)立的控制器,設(shè)計(jì)通信卡擁有4個(gè)CAN網(wǎng)段就需要4片SJA1000,這樣會(huì)造成資源冗余,系統(tǒng)會(huì)比較龐大,而且穩(wěn)定性也會(huì)受影響,設(shè)計(jì)難度也較大。

(2) 帶CAN接口的微控制器實(shí)現(xiàn)

該方法具有代表性的有飛利浦公司的ARM芯片LPC2294,它集成有4路片上CAN總線控制器,能很方便地實(shí)現(xiàn)多路CAN總線接口,減小系統(tǒng)規(guī)模,提高系統(tǒng)穩(wěn)定性。

比較上述兩種方法,在傳統(tǒng)的SJA1000中,接收過(guò)濾只能滿(mǎn)足一些規(guī)律性較高的ID篩選過(guò)濾,或?qū)€(gè)數(shù)較少的ID (一般小于10~15個(gè))進(jìn)行任意篩選過(guò)濾,而難以實(shí)現(xiàn)更復(fù)雜的任意ID進(jìn)行篩選過(guò)濾,這無(wú)疑增加了系統(tǒng)軟件設(shè)計(jì)及運(yùn)行負(fù)擔(dān)。

而第二種設(shè)計(jì)方法相對(duì)較為簡(jiǎn)便。由于LPC2294微控制器中為所有CAN控制器提供了全局的接收標(biāo)識(shí)符查詢(xún)功能,因而能容易地設(shè)計(jì)較復(fù)雜的ID接收過(guò)濾,其工作的重點(diǎn)主要在ARM芯片的軟件設(shè)計(jì)上。本文采用第二種方法來(lái)實(shí)現(xiàn)CAN總線接口,并采用PCA82C250作為CAN總線驅(qū)動(dòng)器,同時(shí)將6N137連入CAN控制器和CAN驅(qū)動(dòng)器之間以降低CAN總線對(duì)網(wǎng)關(guān)卡的電磁干擾。圖3所示是LPC2294中一個(gè)CAN接口的連接圖,其它接口與之類(lèi)似。

1.3 微控制器與PCI9030之間的硬件接口設(shè)計(jì)

微控制器與PCI9030之間的硬件設(shè)計(jì)是該通信卡的核心控制部分。本設(shè)計(jì)采用ALTERA公司的FPGA EPlC6來(lái)實(shí)現(xiàn)微控制器與PCI9030之間的接口。EPlC6是ALTERA公司的一款FPGA芯片,它內(nèi)部集成了20塊128×36 bits的RAM模塊,可以方便地將它編程為所需要的“雙口RAM”,然后將上行數(shù)據(jù)(CAN節(jié)點(diǎn)發(fā)往PC機(jī)的數(shù)據(jù))和下行數(shù)據(jù)(PC機(jī)發(fā)往CAN節(jié)點(diǎn)的數(shù)據(jù))通過(guò)該“雙口RAM”緩存轉(zhuǎn)發(fā)。由于EPlC6擁有豐富的I/O口,故可靈活選擇數(shù)據(jù)格式(32位/16位/8位)以及傳輸方法,本文采用16位復(fù)用傳輸模式。

EPlC6還要編程實(shí)現(xiàn)PCI9030與ARM之間的邏輯控制時(shí)序轉(zhuǎn)換。由于PCI9030與ARM的控制信號(hào)不完全一致,所以需要進(jìn)行邏輯控制時(shí)序轉(zhuǎn)換。同時(shí),本文PCI9030的局部總線一側(cè)采用的是地址/數(shù)據(jù)復(fù)用模式,而ARM控制器采用的是非復(fù)用模式,因此也需要EPlC6進(jìn)行模式轉(zhuǎn)換:在PCI9030的地址周期內(nèi)可利用LALE將16位地址存到EPlC6內(nèi)部寄存器,等到PCI9030的數(shù)據(jù)周期來(lái)臨時(shí),再與數(shù)據(jù)一起送到ARM的地址口與數(shù)據(jù)口上,以方便ARM取用。

2 、軟件設(shè)計(jì)

2.1 通信卡軟件設(shè)計(jì)

通信卡上的軟件主要指的是ARM控制器上的軟件程序。本文選用ARM控制器LPC2294來(lái)實(shí)現(xiàn)智能數(shù)據(jù)傳輸路徑選擇。LPC2294是通信卡的控制核心。它集成有4路CAN控制器,每個(gè)CAN控制器都與獨(dú)立CAN控制器SJA1000有著相似的寄存器結(jié)構(gòu),它只是對(duì)器件寄存器訪問(wèn)由原來(lái)的8bit字節(jié)訪問(wèn)轉(zhuǎn)變?yōu)榱?2 bit的雙字訪問(wèn)。LPC2294可實(shí)現(xiàn)CAN網(wǎng)段與上位機(jī)之間的數(shù)據(jù)傳輸控制(包括上行數(shù)據(jù)傳輸和下行數(shù)據(jù)傳輸)以及不同CAN網(wǎng)段間的數(shù)據(jù)傳輸控制(平行數(shù)據(jù)傳輸)。

LPC2294為所有CAN控制器提供了全局接收標(biāo)識(shí)符查詢(xún)功能。它包含一個(gè)512×32 (2 k字節(jié))的RAM,可通過(guò)軟件處理在RAM中存放1~5個(gè)標(biāo)識(shí)符表格。整個(gè)接收濾波RAM可容納1024個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符或512個(gè)擴(kuò)展標(biāo)識(shí)符,或兩種類(lèi)型的混合標(biāo)識(shí)符。由于允許的表格范圍有2 k字節(jié),故能容易地滿(mǎn)足復(fù)雜的ID接收過(guò)濾要求。LPC2294在FullCAN模式下能自動(dòng)接收并選定網(wǎng)段的標(biāo)準(zhǔn)幀,但本文不采用FullCAN模式。

若在EPlC6的“雙口RAM”中設(shè)置一個(gè)狀態(tài)與控制寄存器組(SOR),那么,上位機(jī)便可通過(guò)訪問(wèn)該寄存器組查詢(xún)通信卡的運(yùn)行狀態(tài)。為了有效管理數(shù)據(jù)傳輸,防止傳輸過(guò)程中的數(shù)據(jù)丟失,本設(shè)計(jì)在ARM內(nèi)部的靜態(tài)RAM區(qū)開(kāi)辟了一個(gè)全局?jǐn)?shù)據(jù)收發(fā)緩存區(qū)(GRTB),其示意圖如圖4所示。

圖4中,對(duì)于標(biāo)準(zhǔn)幀來(lái)說(shuō),它只有11位標(biāo)識(shí)符,因此,圖中的標(biāo)識(shí)符字節(jié)3和4保留不用。而幀格式用來(lái)區(qū)別此幀是標(biāo)準(zhǔn)幀(0)還是擴(kuò)展幀(1)。當(dāng)RTR為1時(shí),表示此幀是遠(yuǎn)程幀。圖中的源段號(hào)和目的段號(hào)用于表明此幀來(lái)自哪個(gè)網(wǎng)段以及將要送往哪個(gè)網(wǎng)段(此處將上位機(jī)也作為其中一段來(lái)處理)。DLC表明傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)目。

2.2 通信卡的運(yùn)行流程

系統(tǒng)上電復(fù)位后,系統(tǒng)將首先運(yùn)行初始化程序。LPC2294的初始化主要是初始化全局接收和發(fā)送緩沖區(qū)以及清除狀態(tài)寄存器中的值等;PCI9030的初始化主要是從EEPROM中加載初始數(shù)據(jù)以進(jìn)行初始設(shè)置,CAN初始化包括設(shè)置模式、總線時(shí)序、中斷使能、標(biāo)識(shí)符表格,這些設(shè)置均可通過(guò)給CAN芯片的內(nèi)部寄存器賦值來(lái)實(shí)現(xiàn)。初始化成功之后,通信卡將進(jìn)行自檢,并在確定啟動(dòng)正常之后進(jìn)入工作狀態(tài)。這一部分的程序流程圖如圖5的A部分所示。

系統(tǒng)進(jìn)入工作狀態(tài)后(圖5中的B部分)將等待中斷產(chǎn)生,如有,則進(jìn)人相應(yīng)的中斷服務(wù)程序。如果是數(shù)據(jù)傳輸,則轉(zhuǎn)入數(shù)據(jù)傳輸子程序,數(shù)據(jù)傳輸子程序主要包括3個(gè)部分:

(1) 下行數(shù)據(jù)傳輸

下行數(shù)據(jù)傳輸指的是上位機(jī)向CAN網(wǎng)段發(fā)送數(shù)據(jù)。即上位機(jī)把數(shù)據(jù)寫(xiě)入到“雙口RAM”中以等待LPC2294將數(shù)據(jù)取走。LPC2294將上位機(jī)發(fā)來(lái)的數(shù)據(jù)暫時(shí)存放在全局?jǐn)?shù)據(jù)收發(fā)緩存區(qū)(GRTB)中,然后檢查匹配的目的段是否有空閑的發(fā)送區(qū)(CANSR中的TBS位為1),若有則將數(shù)據(jù)分別寫(xiě)入每個(gè)網(wǎng)段的發(fā)送區(qū)并發(fā)送。如果匹配網(wǎng)段的3個(gè)發(fā)送緩沖器全為忙,則循環(huán)等待,直到有一個(gè)以上的發(fā)送緩沖器為空再進(jìn)行發(fā)送。

(2) 上行數(shù)據(jù)傳輸

上行數(shù)據(jù)傳輸指的是CAN網(wǎng)段向上位機(jī)發(fā)送數(shù)據(jù)。當(dāng)程序檢測(cè)到某個(gè)網(wǎng)段X的CAN中斷/捕獲寄存器(CANICR)中的接收中斷位(RI)置位后,它將進(jìn)入接收中斷服務(wù)程序。此時(shí)程序?qū)⒌綐?biāo)識(shí)符表格中查找匹配的標(biāo)識(shí)符,CAN控制器會(huì)在接收時(shí)自動(dòng)搜索接收濾波器的RAM中的表格并進(jìn)行匹配,只要找到匹配值則產(chǎn)生接收中斷并通知用戶(hù)保留信息,否則自動(dòng)放棄這一幀信息而不產(chǎn)生接收中斷,如果它只找到一個(gè)匹配值(源網(wǎng)段中),則說(shuō)明此數(shù)據(jù)是只傳輸給上位機(jī)的,此時(shí)程序會(huì)將接收到的數(shù)據(jù)信息按上面介紹的格式保存到全局?jǐn)?shù)據(jù)收發(fā)緩沖區(qū)(GRTB),以等待LPC2294將其發(fā)送給EPlC6的“雙口RAM”,以便上位機(jī)讀取。

(3) 平行數(shù)據(jù)傳輸

當(dāng)出現(xiàn)接收中斷時(shí),程序也會(huì)到標(biāo)識(shí)符表格中查找匹配的標(biāo)識(shí)符,如果找到一個(gè)以上的匹配值,則說(shuō)明還有其他網(wǎng)段需要這些數(shù)據(jù)。此時(shí)程序會(huì)將接收到的數(shù)據(jù)信息讀入到全局?jǐn)?shù)據(jù)收發(fā)緩沖區(qū)(GRTB)中去,然后把數(shù)據(jù)發(fā)往匹配網(wǎng)段。

在調(diào)用相應(yīng)的數(shù)據(jù)傳輸子程序后,程序?qū)⒅脴?biāo)志位并返回。如果是其它一些中斷,則轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。若沒(méi)有中斷產(chǎn)生,則檢查PC機(jī)是否有參數(shù)配置需要,最后進(jìn)行系統(tǒng)自檢。本系統(tǒng)會(huì)在系統(tǒng)閑暇時(shí)進(jìn)行自檢并上傳狀態(tài)報(bào)表,這樣可以使用戶(hù)隨時(shí)了解通信卡的工作情況,對(duì)于提高系統(tǒng)的工作可靠性以及出現(xiàn)故障時(shí)的查錯(cuò)效率具有重要的意義。

2.3 上位機(jī)程序設(shè)計(jì)

本設(shè)計(jì)中,上位機(jī)軟件設(shè)計(jì)程序主要包括通信卡底層驅(qū)動(dòng)程序和用戶(hù)服務(wù)程序。其設(shè)計(jì)框圖圖6所示。

通信卡底層驅(qū)動(dòng)程序的功能主要是配置CAN總線接口、收發(fā)CAN總線上的數(shù)據(jù)、對(duì)CAN總線進(jìn)行實(shí)時(shí)監(jiān)測(cè)、執(zhí)行用戶(hù)程序的收發(fā)命令等。CAN總線和PCI總線錯(cuò)誤均采用中斷處理,并通過(guò)事件(Event)內(nèi)核對(duì)象直接通知給用戶(hù)程序。

PCI的用戶(hù)服務(wù)程序則通過(guò)PCI通信程序與系統(tǒng)PCIDI (PCI device interface)進(jìn)行通信,并由系統(tǒng)完成PCI協(xié)議的處理與數(shù)據(jù)傳輸。用戶(hù)可以在設(shè)計(jì)好的上位機(jī)界面上方便的設(shè)定節(jié)點(diǎn)參數(shù),查詢(xún)節(jié)點(diǎn)狀態(tài)信息。

3 、結(jié)束語(yǔ)

本文設(shè)計(jì)的CAN/PCI智能通信卡采用功能強(qiáng)大的ARM芯片LPC2294作為核心控制芯片,因此,該通信卡能夠同時(shí)處理4路CAN總線向上位機(jī)的數(shù)據(jù)傳輸。對(duì)于CAN網(wǎng)段之間的通信需求,本通信卡也能夠很好地滿(mǎn)足,并可使工業(yè)現(xiàn)場(chǎng)的CAN網(wǎng)絡(luò)組網(wǎng)更為簡(jiǎn)單。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉