新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > p87c591的數(shù)據(jù)采集與處理系統(tǒng)的設(shè)計

p87c591的數(shù)據(jù)采集與處理系統(tǒng)的設(shè)計

作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
  1 引言

  現(xiàn)場總線及其應(yīng)用技術(shù)日益成為國際自動控制領(lǐng)域關(guān)注的一個焦點(diǎn)。CAN總線是目前公認(rèn)的幾種最有前途的現(xiàn)場總線之一。通信介質(zhì)可以是雙絞線、同軸電纜和光纖,其通信速率可達(dá)1mbps。can國際標(biāo)準(zhǔn)的制定更加推動了它的發(fā)展和應(yīng)用,基于can總線的工業(yè)應(yīng)用系統(tǒng)業(yè)大量涌現(xiàn)。其主要應(yīng)用領(lǐng)域包括大型儀器設(shè)備、傳感器技術(shù)數(shù)據(jù)采集系統(tǒng)和工業(yè)現(xiàn)場監(jiān)控系統(tǒng)等[1][2]。本文結(jié)合can總線的特點(diǎn),介紹了基于can總線的數(shù)據(jù)采集與處理的一種設(shè)計方法。

本文引用地址:http://butianyuan.cn/article/201611/318476.htm

  2 系統(tǒng)設(shè)計

  2.1 can系統(tǒng)概要

  

  圖1 結(jié)構(gòu)簡圖

  本系統(tǒng)由兩個cpu通過雙口 ram相互連接組成,一片cpu(p87c591)負(fù)責(zé)can信號的發(fā)送與接收,另一片cpu(p89c58ba)負(fù)責(zé) rs-485 信號的發(fā)送與接收。設(shè)計中通訊控制器選用了集成有can控制器的p87c591單片機(jī)。它自帶的can控制器完全具有sja1000的功能,可完成can協(xié)議中規(guī)定的所有數(shù)據(jù)鏈路層和物理層的功能。且p87c591自帶了15個中斷源和看門狗定時器(wdt),應(yīng)用十分方便。系統(tǒng)結(jié)構(gòu)簡圖如圖1所示。圖中各部分所完成的主要功能如下:

  (1) cpu-1:該芯片帶有can接口,故可與下位機(jī)進(jìn)行can通訊。通過can總線發(fā)送上位機(jī)的設(shè)定信息給下位機(jī),同時接收下位機(jī)提供的數(shù)據(jù)信息,將其存入雙口ram中,以供cpu-2來查詢。

  (2) cpu-2:該芯片連接有max491和max485 芯片,故可與外部進(jìn)行422或485通訊,上位機(jī)的信息通過485通訊讀入cpu-2之中,cpu-2再將其存入雙口ram之中,以供cpu-1來查詢,cpu-1再通過can總線將此設(shè)定信息傳送給上位機(jī)。反之,下位機(jī)的所有已存入雙口ram的檢測值信息,也是通過該單片機(jī)的讀取,并通過485通訊,將所有顯示信息在人機(jī)界面上顯示。

  (3) 雙口ram:雙口ram用于存儲系統(tǒng)的設(shè)置信息和狀態(tài)信息,完成各種信息存儲與交換。選用存儲容量為16k的idt7006系列,并采用后備電池支持,保證掉電時存儲的信息不丟失。雙口ram按存儲內(nèi)容不同,分為設(shè)置區(qū)、狀態(tài)區(qū)和預(yù)留區(qū)。設(shè)置區(qū)用來存儲上位機(jī)的信息;狀態(tài)區(qū)用來存儲從下位機(jī)收集的系統(tǒng)狀態(tài)信息;預(yù)留區(qū)則作為預(yù)留備用。

  2.2 p87c591單片機(jī)概要

  在系統(tǒng)中采用philips公司生產(chǎn)的p87c591單片機(jī),該單片機(jī)是一個8 位高性能微控制器具有片內(nèi)can控制器[3],大大簡化了硬件電路的設(shè)計,提高了can接口的穩(wěn)定性。p87c591 采用了強(qiáng)大的80c51指令集,并集成了sja1000 can控制器的pelican功能。主要有以下功能特點(diǎn):can2.0b控制器,支持11位標(biāo)準(zhǔn)標(biāo)識符和29位擴(kuò)展標(biāo)識符,4個可獨(dú)立配置的驗收濾波器,都可“在運(yùn)行中改變”。can控制器的發(fā)送緩沖區(qū)能夠保存一個完整的can信息幀(標(biāo)準(zhǔn)或擴(kuò)展幀格式),只要通過cpu啟動發(fā)送,信息字節(jié)就從發(fā)送緩沖區(qū)傳輸?shù)絚an內(nèi)核模塊完成發(fā)送。can接口包含5個實現(xiàn)cpu與can控制器連接的特殊功能寄存器,對重要can寄存器的訪問通過快速自動增加的尋址和對特殊功能寄存器的位尋址實現(xiàn)。接收一個信息時,can內(nèi)核模塊將串行位流轉(zhuǎn)換成并行數(shù)據(jù)輸入到驗收濾波器,通過該可編程濾波器,p87c591可以確定實際接收到的信息。

  p87c591連接的can節(jié)點(diǎn)電路設(shè)計比較簡單,所需的外部元件只是一個晶振加兩個電容驅(qū)動片內(nèi)震蕩器、一個連接到復(fù)位腳的電阻、電容。使用片內(nèi)上電復(fù)位電路以及一個收發(fā)器將p87c591連接到can總線上。如圖2所示。

  

  圖2 can 節(jié)點(diǎn)電路

  2.3 can總線p87c591單片機(jī)側(cè)的主要任務(wù)

  在整個系統(tǒng)中591起到數(shù)據(jù)傳輸和處理的作用,通過can總線接收數(shù)據(jù)采集節(jié)點(diǎn)接收來的信息,整理后按協(xié)議存儲到雙口ram中。其主要任務(wù)有以下兩點(diǎn):其一采集下位機(jī)的數(shù)據(jù)信息;其二將采集來的信息按照協(xié)議的約定存儲到雙口ram中的固定的位置,便于58查詢顯示。

  3 can總線軟件設(shè)計

  can總線軟件設(shè)計主要包括兩大部分:通信網(wǎng)絡(luò)的應(yīng)用層協(xié)議和功能實現(xiàn)的流程和編碼。can通信軟件主要由初始化、接收處理、發(fā)送處理及中斷處理等組成。本文重點(diǎn)介紹發(fā)送、接收處理子程序。

  3.1 發(fā)送程序

  發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報文的發(fā)送。信息從can控制器發(fā)送到can總線是由can控制器自動完成的。其流程圖如圖3所示。

  

  圖3 查詢發(fā)送流程圖

  3.2 接收程序

  接收子程序負(fù)責(zé)接收節(jié)點(diǎn)報文的接收。信息從can總線到can緩沖區(qū)是由can控制器自動完成的,接收程序只需從接收緩沖區(qū)讀取要接收的信息。其流程圖如圖4所示。

  

  圖4 中斷接收流程圖

  4 問題討論

  本設(shè)計的硬件電路中, 采用雙cpu系統(tǒng),即用一個cpu完成測控功能,另一個cpu完成系統(tǒng)聯(lián)網(wǎng)和接口通信功能。cpu間的通信可以采用串口、并口等方式,但它們共同的缺點(diǎn)是操作復(fù)雜、速度慢。因此,采用雙口ram方式在兩個cpu系統(tǒng)間交換數(shù)據(jù)是一個不錯的選擇。但雙口ram有時會發(fā)生共享沖突問題。

  一般雙口ram都提供了兩個完全獨(dú)立的端口,每個端口都有自己的控制線、地址線和數(shù)據(jù)線,cpu對雙口ram端口的操作等效于對它對外部ram進(jìn)行操作。雙口ram在使用上要注意的問題是如何避免兩端cpu對同一ram單元的爭用,雙口ram可提供三種防沖突方式:插入等待狀態(tài)的防沖突方式;信號燈防沖突方式;中斷防沖突方式。本設(shè)計中雙口ram主要用于兩個cpu之間交換數(shù)據(jù),由于交換的實時性很難用軟件來保證,所以采用中斷方式解決沖突問題。

  雙口ram被劃分為兩個區(qū)域,其中數(shù)據(jù)接收緩沖區(qū)是通信cpu插件向其發(fā)送命令和數(shù)據(jù)的區(qū)域;數(shù)據(jù)發(fā)送緩沖區(qū)是它向通信cpu插件發(fā)送數(shù)據(jù)的區(qū)域。為了保證數(shù)據(jù)交換的實時性和有效性,可采用雙口ram的中斷方式通知對方,信號intl和intr可作為cpu的一個中斷輸入。數(shù)據(jù)交換時,先將數(shù)據(jù)放入對應(yīng)的雙口ram存儲區(qū),然后寫入對方信箱,以通知對方有數(shù)據(jù)發(fā)送;接收方在相應(yīng)的中斷中對數(shù)據(jù)進(jìn)行處理,同時讀自己的信箱以清除中斷信號,然后再寫入對方信箱以告知其數(shù)據(jù)已處理完畢。

  5 結(jié)束語

  所設(shè)計的系統(tǒng)可用于電力參數(shù)監(jiān)控和其他工業(yè)自動化場合。利用can總線結(jié)構(gòu)靈活簡單,可靠性高,適應(yīng)性好,易于維護(hù)等優(yōu)點(diǎn)。通過rs485/422和can 總線轉(zhuǎn)換器實現(xiàn)現(xiàn)場智能設(shè)備與上位機(jī)間或其他監(jiān)控裝置的數(shù)據(jù)交換,利用上位機(jī)強(qiáng)大的數(shù)據(jù)處理能力,實現(xiàn)事件記錄、數(shù)據(jù)處理等功能。因此該系統(tǒng)用于工業(yè)領(lǐng)域性價比較高。



評論


技術(shù)專區(qū)

關(guān)閉