《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于PIC單片機的嵌入式CAN智能節(jié)點及其與PC的通信
基于PIC單片機的嵌入式CAN智能節(jié)點及其與PC的通信
摘要: 本文介紹了嵌入式CAN智能節(jié)點,并且應用PC和嵌入式CAN智能節(jié)點組成了CAN通信系統(tǒng),完成了電壓。電流。溫度等信號的實時采集。可靠傳輸和實時顯示,實現(xiàn)了PC端對嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度的控制。
Abstract:
Key words :

    引言

   CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對數(shù)據(jù)的成幀處理。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊編碼,采用這種方法可使網(wǎng)絡內(nèi)節(jié)點個數(shù)在理論上不受限制,還可使不同的節(jié)點同時收到相同的數(shù)據(jù)。

   本文介紹了嵌入式CAN智能節(jié)點,并且應用PC和嵌入式CAN智能節(jié)點組成了CAN通信系統(tǒng),完成了電壓。電流。溫度等信號的實時采集。可靠傳輸和實時顯示,實現(xiàn)了PC端對嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度的控制。

   基于PIC單片機的嵌入式CAN智能節(jié)點的設計

   嵌入式CAN智能節(jié)點以PIC16F874單片機作為嵌入式微控制器,以MCP2510作為CAN控制器,以PCA82C250作為CAN收發(fā)器,具有現(xiàn)場/遠程控制功能。根據(jù)用戶的需求,嵌入式CAN智能節(jié)點通過連接相應的傳感器可以完成多種信號的實時采集。可靠傳輸和實時顯示,PWM波輸出可以用于控制相應的負載。嵌入式CAN智能節(jié)點通過外接電路可以實現(xiàn)電路保護。現(xiàn)場組態(tài)。自動調(diào)節(jié)。故障診斷報警。狀態(tài)檢測等功能,完成對電機。閥門。泵等電器的驅動和智能控制。

   硬件設計

   Microchip公司的單片機PIC16F874采用RISC指令系統(tǒng),哈佛總線結構,低功耗,高速度。內(nèi)部集成了ADC.串行外圍接口(SPI)和Flash程序存儲器等,具有PWM輸出。LCD驅動等功能。PIC16F874通過SPI接口可以實現(xiàn)與CAN控制器MCP2510的無縫連接。PIC16F874的I/O資源豐富,共有A.B.C.D.E五個I/O口,每個I/O口除了基本用途外還有一些特殊功能。

   基于PIC16F874的嵌入式CAN智能節(jié)點的硬件原理圖如圖1所示,主要包括以下四個模塊:

   CAN通信模塊

   嵌入式CAN智能節(jié)點的CAN通信模塊由CAN控制器MCP2510和CAN收發(fā)器PCA82C250組成。MCP2510可以完成CAN總線的物理層和數(shù)據(jù)鏈路層的所有功能,支持高速SPI接口(最高數(shù)據(jù)傳輸速率可以達到5Mb/s),支持CAN2.0A/CAN2.0B協(xié)議。CAN收發(fā)器PCA82C250是CAN控制器與物理總線之間的接口,對物理總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,同時它可以增大通信距離,提高嵌入式CAN智能節(jié)點的抗干擾能力。

   PIC16F874通過SPI與CAN控制器MCP2510連接,其串行數(shù)據(jù)輸入(SDI)腳與MCP2510的SO腳相連,其串行數(shù)據(jù)輸出(SDO)腳與MCP2510的SI腳相連,其串行時鐘(SCK)腳與MCP2510的SCK腳相連。MCP2510的復位信號。片選信號由單片機A口的RA5.RA2提供,MCP2510的中斷信號。接收緩沖區(qū)滿中斷信號輸出到單片機B口的RB0.RB5。

   通過設置PIC16F874的SPI接口狀態(tài)寄存器和控制寄存器使SPI接口工作于主動方式。

   PIC16F874與MCP2510進行通信時的時序是非常重要的。發(fā)送數(shù)據(jù)時,先發(fā)送寫指令,再發(fā)送寄存器地址,最后發(fā)送數(shù)據(jù)。當MCP2510接收到由總線傳來的數(shù)據(jù)時會產(chǎn)生中斷,單片機響應中斷,讀取數(shù)據(jù)時先發(fā)送讀指令,再發(fā)送寄存器地址,數(shù)據(jù)會自動寫入單片機SPI接口的緩沖器中。

   顯示模塊

   嵌入式CAN智能節(jié)點采用OCMJ4Χ8顯示模塊,該顯示模塊可以顯示漢字。ASCII碼等,其所有的設置初始化工作都可以在上電時自動完成。

   OCMJ4Χ8顯示模塊的數(shù)據(jù)線DB0~DB7與單片機的D口相連,請求(REQ)腳。應答(BUSY)腳分別與單片機B口的RB4.E口的RE2相連。顯示模塊的RT1.RT2引腳外接可調(diào)電阻用于調(diào)節(jié)LCD的亮度。

   顯示模塊接口協(xié)議為請求/應答(REQ/BUSY)握手方式。BUSY為高電平表示顯示模塊忙;當BUSY為低電平時表示顯示模塊空閑,等待接收命令。單片機先向顯示模塊發(fā)送命令或數(shù)據(jù),然后發(fā)送請求信號,請求顯示模塊進行處理,顯示模塊置BUSY為高電平,對命令或數(shù)據(jù)進行處理,處理結束后置BUSY為低電平。

   模擬量獲取模塊

   PIC16F874單片機A口的RA0.RA1.RA3用于模擬量輸入。嵌入式CAN智能節(jié)點的模擬量獲取模塊的主要功能是將需要采集的電流信號通過電流互感器轉換為電壓信號,將需要采集的溫度信號通過溫度傳感器AD590轉換為電壓信號。

   開關量輸入/輸出模塊

   嵌入式CAN智能節(jié)點通過I/O擴展提供了4路開關量輸入和7路開關量輸出。開關量輸入用于電路的保護。故障報警。狀態(tài)檢測等,只要被控制對象擁有相應的檢測元件,接入相應的接口即可。開關量輸出用于驅動繼電器,可以根據(jù)負載的大小確定是否需要連接接觸器控制電機。閥門。泵等電器執(zhí)行元件。根據(jù)用戶的需求,此部分電路可以做相應的變化。

   軟件設計

   嵌入式CAN智能節(jié)點的軟件采用匯編語言編寫,主要完成對PIC16F874(I/O口。定時器等).SPI接口(串行口狀態(tài)寄存器SSPSTAT.串行口控制寄存器SSPCON等).顯示模塊。I/O擴展芯片8255和CAN控制器MCP2510(位定時配置寄存器。CAN信息接收過濾和屏蔽控制寄存器。接收發(fā)送緩沖區(qū)控制寄存器等)的初始化,設定發(fā)送。接收標識碼(ID),讀取A/D轉換的數(shù)值,設置嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度,處理。顯示并發(fā)送采集的數(shù)據(jù),接收。處理并顯示由總線傳來的數(shù)據(jù)等工作。

   初始化系統(tǒng)

   程序需要對PIC16F874單片機。顯示模塊。I/O擴展芯片8255和CAN控制器MCP2510進行初始化。其中對MCP2510初始化是非常重要的,主要包括設置數(shù)據(jù)傳輸?shù)牟ㄌ芈剩瑢俗R碼和屏蔽字寫入CAN信息接收過濾和屏蔽控制寄存器。對PIC16F874進行初始化時,要特別注意定時器TMR2。   

   設定發(fā)送。接收標識碼

   PIC16F874單片機C口的RC0.RC1.RC6.RC7引腳連接了一個撥碼開關。程序通過讀取這四個引腳的狀態(tài)為每個嵌入式CAN智能節(jié)點分配了發(fā)送。接收標識碼的初始值。當網(wǎng)絡中智能節(jié)點數(shù)目較多時,這種方法可以方便程序的編寫。

關鍵字:PIC單片機 CAN智能節(jié)點 PC 通信

 

   讀取A/D轉換的數(shù)值

   PIC16F874的A口和E口可以作為模擬量輸入口,共有8個輸入通道。A/D轉換的結果存儲于單片機的ADRES寄存器。程序首先設置單片機的A/D控制寄存器ADCON1的bit3~bit0,選擇每個通道的輸入/輸出類型并設置參考電壓為5V,然后設置單片機的A/D控制寄存器ADCON0的bit5~bit3選擇通道,設置bit0打開ADC,設置bit2啟動ADC,最后從單片機的A/D轉換結果寄存器ADRES中讀取A/D轉換的數(shù)值。

   設置PWM波輸出的脈沖寬度

   PIC16F874的CCP1引腳用于PWM波輸出。程序首先設置單片機的CCP1模塊控制寄存器CCP1CON的bit3~bit0,定義工作方式為PWM,然后用從PC端接收到的用于設置嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度的數(shù)據(jù)設置單片機的CCP1控制寄存器CCP1CON的bit5~bit4。  

   發(fā)送數(shù)據(jù)

   程序為每個需要傳送到PC端的信號(電壓。電流。溫度。嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度)都分配了一個標識碼。發(fā)送數(shù)據(jù)時,首先向MCP2510發(fā)送寫指令,再將標識碼。幀格式和數(shù)據(jù)長度的定義。需要發(fā)送的數(shù)據(jù)依次寫入MCP2510相應的寄存器中。

   接收數(shù)據(jù)

   程序讀取CAN控制器MCP2510的中斷標志寄存器的值,判斷接收緩沖區(qū)中是否有數(shù)據(jù),當接收緩沖區(qū)中有數(shù)據(jù)時向MCP2510發(fā)送讀指令,依次將標識碼。幀格式和數(shù)據(jù)長度。接收到的數(shù)據(jù)從MCP2510相應的寄存器中讀出。

   處理和顯示數(shù)據(jù)

   A/D轉換的數(shù)值經(jīng)過程序處理后得到信號的真實值并送顯示模塊進行顯示,主要包括數(shù)值和漢字。英文字符的顯示。同時完成了嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度和從PC端接收到的數(shù)據(jù)的顯示。

   PC端功能的實現(xiàn)

   硬件部分

   PC端采用了研華公司的PCL-841雙端口CAN接口卡,該卡具有兩個CAN通信口,最高數(shù)據(jù)傳輸速率可以達到1Mbps。該卡采用內(nèi)存映射機制,即將CAN接口卡上的內(nèi)存映射至主存中,用戶可以根據(jù)需要自己設定映射內(nèi)存的基地址。

   軟件部分

   PC端的軟件采用C語言編寫,主要完成CAN信息的實時讀齲處理和顯示,向嵌入式CAN智能節(jié)點發(fā)送數(shù)據(jù)和設置嵌入式CAN智能節(jié)點PWM波輸出的脈沖寬度等工作。

   設計。調(diào)試中應當注意的一些問題

   硬件方面

   嵌入式CAN智能節(jié)點

   設計中應當注意處理好復位和時鐘信號,包括不同器件之間復位的先后時序。在進行溫度信號的采集時,要特別注意溫度傳感器AD590的調(diào)零。AD590是一個恒流源,它的特性是絕對溫度每變化1℃電流增/減1mA,絕對溫度0℃時為0mA。為抵消AD590在0℃時的電壓,需要加入一個負電源使其在0℃時輸出為0V,再選擇合適的電阻把電流轉變?yōu)殡妷海涂梢园褱囟刃盘柕牟杉優(yōu)?~5V電壓信號的采集。

   調(diào)試過程中應首先檢查各芯片的工作電壓是否正常,晶振是否起振,復位信號是否正確。要經(jīng)常察看各芯片的發(fā)熱狀況,出現(xiàn)溫度過高時應立即斷電檢查。必要時可使用示波器觀測信號波形進行分析。

   PC端

   由于PCL-841雙端口CAN接口卡占用PC的串口資源,因此在BIOS設置中應將串口設置為Disable,還應該特別注意CAN接口卡占用的內(nèi)存資源是否被其它硬件占用,如果已經(jīng)被占用,則應修改CAN接口卡內(nèi)存映射的首地址,同時更改CAN接口卡上的跳線,否則CAN接口卡無法正常工作。

   軟件方面

   嵌入式CAN智能節(jié)點

   在編寫嵌入式CAN智能節(jié)點的程序時,需要特別注意的是CAN控制器MCP2510的初始化,務必使一個系統(tǒng)中的所有智能節(jié)點的數(shù)據(jù)傳輸波特率相同,否則嵌入式CAN智能節(jié)點將無法和PC端進行通信。應當注意必須正確地將標識碼和屏蔽字寫入MCP2510的CAN信息接收過濾和屏蔽控制寄存器,否則嵌入式CAN智能節(jié)點將無法正確的發(fā)送和接收CAN信息。

    調(diào)試過程中應注意通過查看各個寄存器的值來判斷程序執(zhí)行的程度。

    PC端

    在編寫PC端的程序時,需要將PCL-841雙端口CAN接口卡驅動程序庫CAN841S.LIB嵌入到自己的工程中,驅動程序庫中封裝了直接操控CAN接口卡的函數(shù)。對CAN接口卡進行操控時必須按照規(guī)定流程進行,否則CAN接口卡無法正常工作或者無法正確的發(fā)送和接收CAN信息。

    調(diào)試過程中應采取下斷點和單步執(zhí)行相結合的調(diào)試方法,注意根據(jù)函數(shù)的返值來分析出現(xiàn)問題的原因。

    結語

    本課題初步完成了基于CAN總線的數(shù)據(jù)采集和智能控制系統(tǒng)的設計,經(jīng)過反復實驗,系統(tǒng)采集數(shù)據(jù)準確。傳輸可靠,通過了有關部門的專業(yè)測試。同時設計的嵌入式CAN智能節(jié)點可以迅速。準確地接收到PC端發(fā)送的數(shù)據(jù)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品综合在线| 久久成人在线| 久久国产日韩| 亚洲午夜性刺激影院| 一片黄亚洲嫩模| 日韩一级成人av| 一本久道久久综合婷婷鲸鱼| 亚洲欧洲精品成人久久奇米网 | 亚洲综合首页| 正在播放亚洲| 亚洲神马久久| 亚洲一区二区免费看| 亚洲视频网在线直播| 亚洲性夜色噜噜噜7777| 亚洲在线播放| 欧美中在线观看| 亚洲观看高清完整版在线观看| 久久国产高清| 亚洲黄页一区| 亚洲美女在线看| 中日韩男男gay无套| 亚洲自拍偷拍一区| 性欧美xxxx视频在线观看| 欧美一区亚洲一区| 久久九九热re6这里有精品| 久久综合色影院| 欧美国产日韩精品免费观看| 欧美精品麻豆| 国产精品高精视频免费| 国产日本欧美一区二区| 国产一级一区二区| 亚洲第一福利视频| 妖精成人www高清在线观看| 亚洲女ⅴideoshd黑人| 欧美一区二区三区四区在线| 亚洲第一区中文99精品| 亚洲精品美女免费| 中文高清一区| 久久精品国产69国产精品亚洲| 久久亚洲春色中文字幕| 欧美激情一区二区三区| 国产精品国产三级国产aⅴ浪潮 | 欧美精品免费播放| 国产精品久久久久久久久免费樱桃| 国产精品一区二区久久精品| 国产亚洲高清视频| 亚洲激情社区| 亚洲淫性视频| 亚洲欧洲精品成人久久奇米网| 一区二区三区**美女毛片| 性做久久久久久久免费看| 久久一区二区三区国产精品 | 国产一区二区无遮挡| 91久久精品一区| 亚洲男女自偷自拍| 91久久精品网| 亚洲一区二区三区在线视频| 久久精品一二三| 欧美日韩成人网| 国产亚洲精品自拍| 日韩视频专区| 欧美专区在线观看一区| 夜夜爽99久久国产综合精品女不卡| 小黄鸭精品aⅴ导航网站入口| 国产精品久久二区| 国产欧美高清| 国产精品夫妻自拍| 在线观看日韩欧美| 亚洲午夜女主播在线直播| 亚洲国产精彩中文乱码av在线播放| 中文精品视频| 免费在线观看成人av| 国产精品你懂的| 亚洲高清不卡在线| 亚洲欧美日韩系列| 一区二区三区三区在线| 久久综合影视| 国产欧美精品一区二区色综合 | 亚洲精品中文字| 久久精品99国产精品| 欧美日韩视频免费播放| 一区在线观看| 欧美一区二区三区精品电影| 99av国产精品欲麻豆| 久久久久久综合网天天| 国产精品久久久久久久久久久久| 亚洲国产精品成人综合| 久久国产精品一区二区三区四区| 亚洲资源av| 欧美精品一区三区在线观看| 国产在线国偷精品产拍免费yy| 一本久久精品一区二区| 亚洲欧洲日本mm| 久久婷婷蜜乳一本欲蜜臀| 国产女主播在线一区二区| 日韩一二在线观看| 日韩视频免费观看| 欧美大片免费| 伊人色综合久久天天五月婷| 亚洲欧美日本国产有色| 亚洲男同1069视频| 欧美系列电影免费观看| 亚洲精品黄色| 亚洲精品一区二区三区福利| 久久女同互慰一区二区三区| 国产亚洲aⅴaaaaaa毛片| 亚洲欧美日本日韩| 欧美亚洲在线观看| 国产精品久久久久久久电影| 一本到高清视频免费精品| 一区二区激情视频| 欧美日韩国产综合一区二区| 91久久精品国产91久久性色tv| 亚洲黄色有码视频| 美日韩免费视频| 在线免费观看欧美| 亚洲国产99| 欧美成人官网二区| 在线观看91精品国产麻豆| 亚洲国产日韩一区| 免费av成人在线| 亚洲二区在线观看| 亚洲人成亚洲人成在线观看图片| 毛片一区二区三区| 亚洲高清在线视频| 日韩视频一区二区在线观看| 欧美精品一区二区三区很污很色的 | 国内揄拍国内精品少妇国语| 久久精品女人| 免费日本视频一区| 亚洲破处大片| 在线视频精品一区| 欧美性大战久久久久久久蜜臀 | 欧美一区二区在线免费播放| 国产精品网站在线观看| 午夜精品久久久久久久久久久| 欧美一区二区三区免费视| 国产亚洲福利社区一区| 久久精品一区蜜桃臀影院| 免费人成精品欧美精品| 亚洲欧洲日夜超级视频| 一二三区精品| 国产精品入口夜色视频大尺度| 香蕉久久一区二区不卡无毒影院| 久久久久久电影| 亚洲国产精品成人综合| 亚洲视频欧美在线| 国产欧美日韩在线| 亚洲风情在线资源站| 欧美精品一区二区三区四区| 中文av一区二区| 久久精品99国产精品酒店日本| 激情欧美一区| 一区二区三区成人精品| 国产精品私人影院| 亚洲电影在线播放| 欧美日韩福利| 亚洲欧美一区二区视频| 欧美不卡三区| 在线中文字幕日韩| 久久久美女艺术照精彩视频福利播放| 亚洲第一区在线观看| 亚洲小视频在线| 国产亚洲欧美aaaa| 日韩亚洲成人av在线| 国产老女人精品毛片久久| 亚洲国产精品久久久久婷婷884| 欧美久久久久久| 午夜影院日韩| 欧美日韩dvd在线观看| 香蕉久久夜色精品国产使用方法| 欧美福利视频网站| 亚洲综合99| 欧美—级在线免费片| 亚洲永久视频| 欧美黄色日本| 新67194成人永久网站| 欧美精品一区在线| 久久av一区二区三区漫画| 欧美日本中文字幕| 久久精品免费看| 国产精品久久久久久久第一福利 | 午夜精品国产更新| 欧美另类极品videosbest最新版本| 亚洲专区一区二区三区| 欧美国产极速在线| 亚洲欧美日韩一区二区三区在线| 欧美成人精品一区二区| 亚洲午夜视频在线| 欧美精品观看| 久久成年人视频| 国产精品福利影院| 日韩视频三区| 影音先锋欧美精品| 西西裸体人体做爰大胆久久久| 在线精品视频在线观看高清| 欧美在线看片| 在线视频你懂得一区二区三区| 免费久久久一本精品久久区| 亚洲一区二区三区在线看|