當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1 引言 CAN總線是目前流行的總線技術(shù)之一,是一種基于微控制器件的網(wǎng)絡(luò)。它用開(kāi)放的,具有可互操作的網(wǎng)絡(luò)將現(xiàn)場(chǎng)各種控制器及儀表設(shè)備互連,構(gòu)成現(xiàn)場(chǎng)總線控制系統(tǒng),將控制功能徹底下放到現(xiàn)場(chǎng),降低了安裝成本和維護(hù)費(fèi)用。

1 引言
CAN總線是目前流行的總線技術(shù)之一,是一種基于微控制器件的網(wǎng)絡(luò)。它用開(kāi)放的,具有可互操作的網(wǎng)絡(luò)將現(xiàn)場(chǎng)各種控制器及儀表設(shè)備互連,構(gòu)成現(xiàn)場(chǎng)總線控制系統(tǒng),將控制功能徹底下放到現(xiàn)場(chǎng),降低了安裝成本和維護(hù)費(fèi)用。FCS實(shí)質(zhì)是一種開(kāi)放的、具可互操作性的、徹底分散的分布式控制系統(tǒng)。CAN總線屬于工業(yè)現(xiàn)場(chǎng)總線的范疇是目前流行的現(xiàn)場(chǎng)總線控制系統(tǒng)之一。與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,同時(shí)具備了現(xiàn)場(chǎng)總線優(yōu)點(diǎn)。本文提出一種基于CAN智能節(jié)點(diǎn)的設(shè)備聯(lián)機(jī)控制系統(tǒng)。
2 系統(tǒng)概述
本文設(shè)計(jì)的是一種基于工業(yè)設(shè)備控制系統(tǒng)的以CAN總線智能節(jié)點(diǎn)。節(jié)點(diǎn)分為控制節(jié)點(diǎn)、主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn)三種,多個(gè)不同節(jié)點(diǎn)通過(guò)總線連接,形成多機(jī)聯(lián)控系統(tǒng)。系統(tǒng)雖然有三種不同功能的節(jié)點(diǎn),每類(lèi)節(jié)點(diǎn)采用相同的CAN節(jié)點(diǎn)結(jié)構(gòu)。
500)this.style.width=500;" border="0" />

圖1 CAN總線節(jié)點(diǎn)結(jié)構(gòu)示意圖
CAN總線節(jié)點(diǎn)可以歸納為三種構(gòu)成方式: 1) CAN控制器的單片機(jī)+CAN收發(fā)器;2) 帶有CAN控制器的單片機(jī)+CAN收發(fā)器;3)帶有CAN控制器的I/O端口+CAN收發(fā)器。系統(tǒng)結(jié)構(gòu)更為如圖1所示。本文選擇第一種方式連接方式,由于器件組合靈活,很容易實(shí)現(xiàn)高的性價(jià)比。
3 節(jié)點(diǎn)的硬件結(jié)構(gòu)設(shè)計(jì)
3.1 節(jié)點(diǎn)控制芯片選擇
本研究選用的是美國(guó)微芯Microchip Technology公司的PIC芯片(PIC16F873,28腳FLASH)和福州貝能公司的MPLAB開(kāi)發(fā)工具。MPLAB開(kāi)發(fā)系統(tǒng)是一種廉價(jià)的開(kāi)發(fā)工具,集編程器與調(diào)試器為一體。它利用了PICI6F87X的在線調(diào)試能力和MICROCHIP的串行編程技術(shù)(In-Circuit Serial Programming)。它工作于MPLAB-IDE集成開(kāi)發(fā)環(huán)境軟件包下,直接連接到應(yīng)用系統(tǒng)中去。PICI6F87X是MICIZOCHII)公司的中檔產(chǎn)品,繼承了MICROCI-III,的傳統(tǒng)特點(diǎn),實(shí)用、低價(jià)、指令集少、低功耗。
PIC16F873開(kāi)發(fā)裝置的不足之處有:系統(tǒng)只能設(shè)置一個(gè)斷點(diǎn);運(yùn)行系統(tǒng)程序后單步執(zhí)行速度慢;由于占用了芯片資源,I/0管腳RB3,RB7,RB6功能不正常,無(wú)法調(diào)試.另外程序調(diào)試時(shí),應(yīng)注意編程電壓不能太低。
3.2 節(jié)點(diǎn)CAN通訊的硬件設(shè)計(jì)
在CAN中應(yīng)用的元器件主要包括CAN控制器和CAN收發(fā)器。本文選用的是獨(dú)立CAN控制器。PHILIPS公司的SJA1000管腳太多,占用過(guò)多的I/O口,MCP2510是目前市場(chǎng)上體積最小的CAIN控制器,通過(guò)SPI通訊方式與微處理器連接,連接端口少,所以系統(tǒng)選擇MCP2510作為CAN控制器。MCP2510只要跟MCU和驅(qū)動(dòng)芯片(8X250 )就可以構(gòu)成一個(gè)簡(jiǎn)易局域網(wǎng)的節(jié)點(diǎn)。MCP2510可以完全實(shí)現(xiàn)CAN2.0A和CAN2.0B協(xié)議。圖2為MCP2510芯片的內(nèi)部結(jié)構(gòu)圖。

500)this.style.width=500;" border="0" />

它的特點(diǎn)有:CAN總線的收發(fā)器大部分都是8腳DIP封裝,各公司的產(chǎn)品價(jià)格和性能類(lèi)似,無(wú)太大的區(qū)別。PHILIP公司新推出的高速容錯(cuò)CAN收發(fā)器TJA1050, TJA1040與早先推出的PCA82C250相比,價(jià)格大致相同,但其抗干擾性更強(qiáng),可防止電磁干擾。本文選用了PCA82C250CAN收發(fā)器。
3.3 控制節(jié)點(diǎn)設(shè)計(jì)
控制節(jié)點(diǎn)采用PIC16F873進(jìn)行控制和通訊控制板的結(jié)構(gòu)如圖??刂瓢逵梢韵码娐方M成:鍵盤(pán)輸入電路、IC卡控制電路、液晶顯示電路、無(wú)線信號(hào)接收電路、主控制電路、CAN通訊電路。圖3為控制節(jié)點(diǎn)結(jié)構(gòu)示意圖。
500)this.style.width=500;" border="0" />

1、鍵盤(pán)輸入電路采用74C922鍵盤(pán)編碼芯片。其輸出的有效端(DATA AVAILABLE)與I6F873的PORTB口的硬件中斷連接。其解碼輸出與分別接至PORTA, PORTB口。74C922芯片通過(guò)外部時(shí)鐘或者外部電容執(zhí)行鍵盤(pán)掃描,功耗小,寬范圍供電3V-15V。當(dāng)按鍵按下,數(shù)據(jù)有效端輸出高電平,否則為低電平。數(shù)據(jù)輸出端口在下一次按鍵之前保持前次按鍵解碼輸出的狀態(tài)。
2、IC卡控制電路。控制芯片采用I2C通訊方式與IC卡通訊。只有讀到卡內(nèi)的數(shù)據(jù)才能操作控制板,否則控制板只顯示當(dāng)前的時(shí)間,按鍵無(wú)效。通用存貯器1C卡是由通用存貯器芯片封裝而成的,由于它的結(jié)構(gòu)和功能簡(jiǎn)單,生產(chǎn)成本低,使用方便,因此在各領(lǐng)域都得到了廣泛的應(yīng)用。目前用于IC卡的通用存貯器芯片多為E2PROM,其常用的協(xié)議主要有兩線串行連接協(xié)議(I2C)和三線串行鏈接協(xié)議。本文采用比較常用的ATMEL公司生產(chǎn)的AT24系列芯片EEPROM AT24C01,它具有1k的存貯容量,兩線串行I2C通訊方式,適用于2V~5V的低電壓/標(biāo)準(zhǔn)電壓的操作,具有低功耗和高可靠性等優(yōu)點(diǎn)。
3、LCD顯示是單片機(jī)控制產(chǎn)品中的典型應(yīng)用。目前有多種方法實(shí)現(xiàn)LCD液晶顯示控制:一種是單片機(jī)內(nèi)部直接集成了LCD驅(qū)動(dòng)電路,這種方法一般在4位機(jī)中較常用,8位機(jī)則很少,成本也較高。另一種方法是使用LCD模塊,這種模塊中帶有LCD顯示屏和LCD驅(qū)動(dòng)電路,用起來(lái)較方便,但成本偏高,不適合于大批量生產(chǎn)采用。本文采用的是單片機(jī)+LCD驅(qū)動(dòng)器+LCD顯示屏的方式,可選用不同的單片機(jī),另外選用性價(jià)比很高的LCD驅(qū)動(dòng)器HT1621。
4、本系統(tǒng)設(shè)計(jì)的無(wú)線信號(hào)接收電路采用MICRF002芯片。MICRF002芯片是超外差電路。美國(guó)Micrel公司推出的MICRF系列超外差電路靈敏度高和選擇性好。單片集成電路可完成接收及解調(diào)功能。Micrel 公司MICRF002為MICRF001的改進(jìn)型,與MICRF001相比,功耗更低,并具有電源關(guān)斷控制端。MICRF002性能穩(wěn)定,使用非常簡(jiǎn)單。
5、主從機(jī)節(jié)點(diǎn)硬件電路相同(我們稱其為電機(jī)板),二者僅軟件設(shè)計(jì)不同而己。電機(jī)板由主控芯片PIC16F873,水位檢測(cè)電路、脈沖檢測(cè)電路、驅(qū)動(dòng)電路組成。
4 節(jié)點(diǎn)軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)分為以下幾個(gè)部分:CAN節(jié)點(diǎn)通訊程序、控制板程序(包括鍵盤(pán)輸入程序、無(wú)線接收程序、IC卡通訊程序、液晶界面控制程序)、電機(jī)板程序三個(gè)大部分??刂瓢迳系腎C芯片包含控制板程序和CAN通訊程序。電機(jī)板上的IC芯片存有CAN通訊程序和電機(jī)板程序。CAN節(jié)點(diǎn)要有效、實(shí)時(shí)地完成通訊任務(wù),CAN通訊軟件設(shè)計(jì)是關(guān)鍵。它包括初始化程序報(bào)文發(fā)送子程序,報(bào)文接收子程序和出錯(cuò)處理子程序等。
控制板的主程序流程圖如圖4所示。系統(tǒng)設(shè)計(jì)要求只有插入IC卡后,才可以通過(guò)鍵盤(pán)或遙控器來(lái)控制系統(tǒng)。鍵盤(pán)處理子程序和無(wú)線接收子程序都是采用中斷方式執(zhí)行,且任何時(shí)刻二者只能有一個(gè)被執(zhí)行。鍵盤(pán)處理子程序的中斷是外部INT中斷,無(wú)線接收子程序采用的是PORTB 口的RB6端。
500)this.style.width=500;" border="0" />

在編程時(shí)有一點(diǎn)要注意,PORTB口RB7-RB4端有電平變化時(shí)可以產(chǎn)生中斷,但只有當(dāng)I/O引腳設(shè)置為輸入狀態(tài)時(shí)才能發(fā)生中斷。芯片通過(guò)把RB7-RB4端口的輸入信號(hào)與上次讀入的鎖存值進(jìn)行比較,如不等,則二者異或后輸出,產(chǎn)生變化中斷,使標(biāo)志位RBIF為1??刂瓢宄绦蜻\(yùn)行時(shí),控制板的程序接收各塊電機(jī)板的狀態(tài),然后在控制板液晶上顯示電機(jī)臺(tái)數(shù)和水箱的水位狀態(tài)??刂瓢迨盏芥I盤(pán)和遙控器的命令,向總線發(fā)送信息。電機(jī)板接受總線信息,執(zhí)行控制板的命令動(dòng)作。同時(shí)定期發(fā)送水位的狀態(tài)值給控制板。其中冷凍功能就是同時(shí)執(zhí)行沖洗功能和通風(fēng)功能。冷凍功能程序是電機(jī)板程序的子程序。每次冷凍結(jié)束后必須執(zhí)行清洗,保持過(guò)濾網(wǎng)清潔。
CAN控制器MCP2510與控制芯片PIC16F873采用SPI通訊方式。PIC微控制器工作于主模式下,可實(shí)現(xiàn)完全SPI功能。數(shù)據(jù)的收發(fā)采用軟件緩沖區(qū)。發(fā)送數(shù)據(jù)時(shí),軟件緩沖區(qū)裝入所發(fā)數(shù)據(jù),同時(shí)發(fā)出SPI中斷。CAN總線廢除了站地址編碼,對(duì)通訊數(shù)據(jù)進(jìn)行編碼。數(shù)據(jù)的編碼通過(guò)幀ID號(hào)來(lái)識(shí)別。可以通過(guò)編碼開(kāi)關(guān)設(shè)定數(shù)據(jù)ID號(hào)。總線仲裁指如果2個(gè)或2個(gè)以上的單元同時(shí)開(kāi)始傳送報(bào)文,那么就會(huì)有總線訪問(wèn)沖突。通過(guò)使用了識(shí)別符的逐位仲裁可以解決這個(gè)沖突。仲裁的機(jī)制確保了報(bào)文和時(shí)間均不損失。當(dāng)具有相同識(shí)別符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)初始化時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。
本文作者創(chuàng)新點(diǎn)
本文構(gòu)建了基于工業(yè)設(shè)備控制系統(tǒng)的CAN總線節(jié)點(diǎn),按照功能的不同,設(shè)計(jì)三種不同功能的節(jié)點(diǎn)。設(shè)計(jì)了不同節(jié)點(diǎn)的硬件結(jié)構(gòu)。采用PIC的匯編程序,實(shí)現(xiàn)了基本CAN通訊的方式和不同節(jié)點(diǎn)的功能要求。本文設(shè)計(jì)的CAN總線節(jié)點(diǎn)解決了在傳統(tǒng)的工業(yè)通訊控制方式485總線中的一些弊端,如無(wú)法構(gòu)成多主結(jié)構(gòu),主節(jié)點(diǎn)任務(wù)繁忙,主節(jié)點(diǎn)故障可能引起系統(tǒng)癱瘓,數(shù)據(jù)傳輸效率降低;實(shí)時(shí)性差,錯(cuò)誤處理能力不強(qiáng)等。

本站聲明: 本文章由作者或相關(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)越多用戶希望企業(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ā)表演講稱,數(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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