0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于C8051F020型單片機和CAN控制器實現(xiàn)深海測控系統(tǒng)的設計

電子設計 ? 來源:電子設計工程 ? 作者:劉敬彪,葉軍 ? 2020-04-01 08:06 ? 次閱讀

1、 引言

為了開發(fā)海洋資源,人類必須首先了解海底環(huán)境。然而,海底環(huán)境十分復雜,對海底探測的要求很高,深海環(huán)境下需要采集的參數(shù)比較多,包括深度、溫度、鹽度、PH值、溶解氧及各種化學元素等。

深海測控系統(tǒng)工作時需要接收來自甲板控制中心的命令,同時要將采集到的數(shù)據(jù)反送到甲板控制中心,二者之間的最大通信距離大于5km,因此,它們之間的通信要求很高。CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。CAN的直接通信距離最遠可達10km(速率在5kb/s以下),報文采用短幀結構,傳輸時間短,受干擾概率低,保證了數(shù)據(jù)出錯率極低。為此,采用CAN總線作為通信方式。

2、 深海測控系統(tǒng)的基本組成

深海測控模塊由二大部分組成:測控子模塊和通信子模塊。測控子模塊的主要功能是根據(jù)甲板控制中心的命令啟動系統(tǒng)并完成參數(shù)提取、轉換、數(shù)據(jù)處理、存儲及發(fā)送等操作。通信子模塊的功能是完成甲板與水下測控系統(tǒng)的通信。

測控子模塊以Cygnal公司的C8051F020型單片機為核心,擴展信號調(diào)理電路及與CAN總線的接口。通信子模塊是Philips公司的SJA1000型CAN控制器。

2.1 測控子模塊

深海測控子模塊由微控制器系統(tǒng)和I/O系統(tǒng)組成。

微控制器是Cygnal公司的C8051F020型單片機。C8051F020采用CIP-51型微控制器內(nèi)核及流水線指令結構,70%的指令執(zhí)行時間為1個或2個系統(tǒng)時鐘周期,峰值速度達到25MI/s,能滿足深海環(huán)境下多路數(shù)據(jù)的快速采集與分析。C8051F020型單片機內(nèi)部集成1個12位8通道帶可編程增益放大器的A/D轉換器和1個8位8通道A/D轉換器,能滿足深海多路環(huán)境參數(shù)采集;2路12位電壓輸出D/A轉換器;16位可編程定時/計數(shù)器陣列PCA可用于輸出PWM以控制步進電機的運轉;64個耐5V電壓的通用I/O口可控制開關器件的啟動和停止。

微控制器系統(tǒng)還包括了單片機的一些基本外圍電路。系統(tǒng)還開展了1片容量達64Mbyte的串行Flash存儲器,用以保存采集到的數(shù)據(jù),以避免CAN通信不暢時造成數(shù)據(jù)丟失。使用時只要微控制器外接相應的傳感器、繼電器、電機等就可以完成各種環(huán)境下參數(shù)的采集及相應的控制

2.2 通信子模塊

SJA1000是PHILIPS公司推出的一款獨立的CAN控制器,主要用于移動目標和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡控制。它是PCA82C200型CAN控制器(BasicCAN)的替代產(chǎn)品,而且增加了一種新的操作模式——PeliCAN,這種模式支持具有很多新特征的CAN2.0B協(xié)議。

SJA1000的基本特征如下:

·引腳與PCA2C200型CAN控制器兼容。

·有擴展的接收緩沖器(64字節(jié),先進先出FIFO)。

·支持CAN2.0A和CAN2.0B協(xié)議。

·支持11位和29位標識碼。

·通信位速率可達1Mb/s。

·可與不同的微處理器接口。

·可編程的CAN輸出驅動器配置。

SJA1000的引腳排列如圖1所示,主要引腳的功能如下所述。

基于C8051F020型單片機和CAN控制器實現(xiàn)深海測控系統(tǒng)的設計

AD7-AD0:地址數(shù)據(jù)復用線。

ALE/AS:ALE輸入信號(Intel模式)或AS輸入信號(Motorola模式)。

CS:片選信號,低電平允許訪問SJA1000。

RD/E:來自微控制器的RD信號(Intel模式)或E使能信號(Motorola模式)。

WR:來自微控制器的WR信號(Intel模式)或RD/WR使能信號(Motorola模式)。

CLKOUT:SJA1000產(chǎn)生用于微控制器的時鐘輸出信號;時鐘信號由內(nèi)置晶體振蕩器通過可編程除法器產(chǎn)生;時鐘除法寄存器中的時鐘停止位能使該引腳無效。

VDD1和VSS1:邏輯電路5V電源和邏輯電路地。

XTAL:晶體振蕩器放大器輸入,外部晶體振蕩器信號由該腳輸入。

XTAL2:晶體振蕩器放大器輸出,當使用外部晶體振蕩器信號時,該輸出引腳必須開路。

VDD3和VSS3:輸出驅動5V電源和輸出驅動地。

TX0和TX1:CAN輸出驅動器0和1輸出到物理總線。

INT:中斷輸出,用于觸發(fā)微控制器中斷;內(nèi)部中斷寄存器的任何位置位,INT將低電平輸出;INT為開環(huán)輸出;該引腳為低電平將電路從睡眠狀態(tài)激活。

RST:復位輸入,用于復位CAN接口(低電平有效)。

VDD2和VSS2:輸入比較器5V電源和輸入比較器地。

RX0和RX1:從物理CAN總線輸入到SJA1000的輸入比較器。

SJA1000與微處理器的接口非常簡單,微處理器以訪問外部存儲器的方式來訪問SJA1000。由于SJA1000的內(nèi)部寄存器分布在連續(xù)的地址內(nèi),所以完全可以把SJA1000當作外部RAM。在設計接口電路時,SJA1000的片選地址應與其他外部存儲器的片選在邏輯上無沖突。

3 、系統(tǒng)設計

SJA1000型CAN控制器兼容CAN2.0A和CAN2.0B二種規(guī)范。CAN2.0B具有二種不同的幀格式:標準幀和擴展幀,前者為11位標識符,后者為29位標識符。前者的標識符比后者的標識符少2個字節(jié)。深海測控系統(tǒng)的CAN節(jié)點數(shù)量少,只有上位機節(jié)點和水下測控中心節(jié)點,所以即使距離比較遠,對傳輸數(shù)據(jù)速度和可靠性的影響也不是很大。

3.1 單片機與CAN控制器的硬件設計

圖2為C8051F020型單片機與SJA1000型控制器的硬件連接電路原理。SJA1000占用了0x8000-0x80FF的外部RAM空間。當單片機訪問以上空間時片選信號會選中SJA1000。

基于C8051F020型單片機和CAN控制器實現(xiàn)深海測控系統(tǒng)的設計

C8051F020有高低2個外部存儲器接口。因此,SJA1000的AD0-AD7連接到C8051F020的高端口P7口,CS連接到基址為0x8000的外部存儲器片選信號。當C8051F020訪問地址0x8000-0x80FF時,CPU可對SJA1000執(zhí)行相應的讀/寫操作。SJA1000的RD、WR和ALE分別與C8051F020的對應引腳相連,INT接C8051F020的INT0引腳,于是C8051F020可通過中斷方式訪問SJA1000。SJA1000的復位信號RST為低電平有效。C8051F020的AD0-AD7口用于地址/數(shù)據(jù)的輸入/輸出,將其配置為漏極開路方式,利用4.7kΩ上拉電阻器拉至5V。通過設置數(shù)字交叉開關,將C8051F020的外部中斷引腳配置到P2.7口。

CAN能夠使用多種物理介質(zhì),例如雙絞線和光纖等。該設計方案采用雙絞線。信號以差分電壓傳送,2條信號線為CAN_H和CAN_L,靜態(tài)時為2.5V,此時狀態(tài)表示邏輯“1”,也叫做“隱性”。CAN_H比CAN_L高,表示邏輯“0”,稱為“顯性”,此時CAN_H=3.5V,CAN_L=1.5V。TJA1050型CAN總線收發(fā)器是CAN協(xié)議控制器和物理總線之間的接口,CAN總線上二端節(jié)點須加60Ω電阻器和47nF電容器將信號吸收,以避免信號反射。為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX1與RX1通過6N137型高速光耦后與TJA1050相連。這樣就很好地實現(xiàn)了總線上各CAN節(jié)點間的電氣隔離。其中,光耦部分電路的2個電源VCC和V_CAN必須完全隔離,否則采用光耦就是失去了意義。電源的完全隔離可采用小功率電源隔離模塊和通過帶多個5V隔離輸出的開關電源模塊實現(xiàn)。

基于C8051F020型單片機和CAN控制器實現(xiàn)深海測控系統(tǒng)的設計

3.2 軟件設計

通信協(xié)議采用“ID+命令+數(shù)據(jù)+校驗”的形式,其中ID為網(wǎng)絡設備的標識符,采用ID.18-ID.20。標識符ID.21-ID.28作為固定命令,不參與驗收濾波。數(shù)據(jù)表示通信的具體內(nèi)容。校驗為1個字節(jié),采用校驗和的形式,由于CAN總線本身具有15位CRC校驗,并且該系統(tǒng)節(jié)點數(shù)少,競爭不會很激烈,通信可靠性比較高。

軟件設計思想為系統(tǒng)上電后C8051F020先對自身和SJA1000進行初始化以確定工作主頻、波特率和輸出特性等,然后接收來自甲板上位機的控制命令,同時將獲取的采樣參數(shù)通過SJA1000傳送到CAN總線上或備份到Flash存儲器中;對SJA1000的初始化設計是重點,也是難點,必須對寫入每個寄存器的內(nèi)容進行仔細和全面考慮,否則系統(tǒng)將無法正常運行。可設上位機SJA1000適配卡的ACR為xx20,AMR為FF00。水下測控中心SJA1000的ACR為xx40,AMR為FF00。

遵循上述思路,筆者采用C51編寫了應用軟件,下面是部分程序清單。

初始化部分:

void CAN_Init(void)

{ CANMODE=0x09;//進入復位模式,單向驗收濾波,對SJA1000初始化

CANCDR=0x88; //選擇PeilCAN模式

CANIER=0x1A; //開放接收中斷、超載中

由于深海測控系統(tǒng)對通信的實時性要求很高,一旦接收到甲板上傳來的控制命令就必須及時響應,為此從CAN總線上接收信息采用中斷方式。即SJA1000無錯地接收到消息后使INT變?yōu)榈碗娖?,下降沿觸發(fā)C8051F020的外部中斷0,使其進入中斷服務程序。其流程如圖3所所示。

如果要向CAN總線發(fā)送數(shù)據(jù),則必須將符合PeilCAN幀格式的一組數(shù)據(jù)寫入SJA1000的發(fā)送緩沖區(qū),然后調(diào)用發(fā)送子函數(shù)。這里采用查詢方式來實現(xiàn)發(fā)送。流程如圖4所示。

基于C8051F020型單片機和CAN控制器實現(xiàn)深海測控系統(tǒng)的設計

4、 結束語

基于SJA1000型CAN控制器的深海測控系統(tǒng)基本上滿足了功耗低、體積小、重量輕、易擴展的要求,同時與甲板上位機之間的通信可靠,完全能滿足深海探測的需要,并能廣泛應用于海洋油、氣田作業(yè),海洋污染監(jiān)控和防治,海上漁業(yè)生產(chǎn)等,前景廣闊。

責任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6030

    文章

    44500

    瀏覽量

    632247
  • 控制器
    +關注

    關注

    112

    文章

    16137

    瀏覽量

    177162
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2702

    瀏覽量

    463194
收藏 人收藏

    評論

    相關推薦

    C8051F020單片機的電路設計

    設計采用高性能單片機C8051F020控制芯片,監(jiān)控示波器面板上40個按鍵、3個編碼開關及4個電位的狀態(tài)。
    的頭像 發(fā)表于 12-30 09:43 ?9265次閱讀
    <b class='flag-5'>C8051F020</b><b class='flag-5'>單片機</b>的電路設計

    C8051F020單片機與SJA1000控制器接口電路

    圖為C8051F020單片機與SJA1000控制器的硬件連接電路原理。SJA1000占用了0x8000-0x80FF的外部RAM空間。當
    發(fā)表于 06-14 05:00

    C8051F020單片機及其在總磷在線自動分析儀中的應用

    C8051F020是Cygnal司生產(chǎn)的混合信號系統(tǒng)單片機,片內(nèi)集成了CIP-51的CPU內(nèi)核,且指令系統(tǒng)與MCS-51完全兼容.文章介紹了C80
    發(fā)表于 04-27 15:15 ?29次下載

    基于C8051F020和USB的OLED控制系統(tǒng)設計

    介紹基于C8051F020 單片機與CH375 接口電路的OLED 控制系統(tǒng)的設計與實現(xiàn)方法
    發(fā)表于 08-28 14:23 ?40次下載

    基于C8051F020的SD卡主控制器設計

    給出一種應用于飛機飛行數(shù)據(jù)采集儀的SD 卡設計方案,該方案選用與8051 完全兼容的高性能單片機C8051F020 作為主控制器,采用SPI 總線與SD 卡通信。文章詳細介紹了SD 卡
    發(fā)表于 09-21 10:57 ?85次下載

    采用C8051F020單片機的串口通信應用資料

    采用C8051F020單片機的串口通信應用資料
    發(fā)表于 03-10 09:20 ?120次下載

    基于C8051F020單片機的多路壓力測量儀

    介紹了一種基于C8051F020單片機的多路壓力測量儀。該測量儀選用電阻應變式壓力傳感采集壓力信號,并經(jīng)放大電路處理后送入C8051F020單片機
    發(fā)表于 12-21 10:21 ?118次下載

    混合信號系統(tǒng)單片機C8051F020資料

    混合信號系統(tǒng)單片機C8051F020資料 C8051F020/1/2/3 器件是完全集
    發(fā)表于 10-08 12:56 ?2852次閱讀
    混合信號<b class='flag-5'>系統(tǒng)</b>級<b class='flag-5'>單片機</b><b class='flag-5'>C8051F020</b>資料

    基于C8051F020的伺服閥溫度零漂測控系統(tǒng)

    基于C8051F020的伺服閥溫度零漂測控系統(tǒng) 單片機與嵌入式系統(tǒng) 南京機電液壓工程研究中心 徐民   以高性能
    發(fā)表于 01-22 11:16 ?909次閱讀
    基于<b class='flag-5'>C8051F020</b>的伺服閥溫度零漂<b class='flag-5'>測控</b><b class='flag-5'>系統(tǒng)</b>

    基于C8051F020的密閉環(huán)境溫度恒溫控制系統(tǒng)設計

    本文給出了一種基于C8051F020單片機實現(xiàn)密閉環(huán)境溫度自動控制系統(tǒng)方案。將半導體制冷模塊置于一個密閉環(huán)境,通過
    發(fā)表于 07-26 16:05 ?3296次閱讀
    基于<b class='flag-5'>C8051F020</b>的密閉環(huán)境溫度恒溫<b class='flag-5'>控制系統(tǒng)</b>設計

    基于C8051F020的驅動程序設計

    簡單介紹了MCGS組態(tài)軟件和C8051F020單片機的特點。并以基于C8051F020單片機設計的廠房燈光控制器被背景,詳細闡述了開發(fā)基于M
    發(fā)表于 09-25 17:20 ?22次下載
    基于<b class='flag-5'>C8051F020</b>的驅動程序設計

    使用C8051F020實現(xiàn)SD卡主控制器的設計資料說明

    給出一種應用于飛機飛行數(shù)據(jù)采集儀的SD卡設計方案, 該方案選用與8051完全兼容的高性能單片機C8051F020作為主控制器.采用SPI總線與SD卡通信。文章詳細介紹了SD卡以及
    發(fā)表于 10-22 17:33 ?3次下載
    使用<b class='flag-5'>C8051F020</b><b class='flag-5'>實現(xiàn)</b>SD卡主<b class='flag-5'>控制器</b>的設計資料說明

    C8051F020單片機的直流穩(wěn)壓電源設計

    C8051F020單片機的直流穩(wěn)壓電源設計(現(xiàn)代電源技術試卷)-基于C8051F020單片機的直流穩(wěn)壓電源設計? ? ? ? ? ? ? ?
    發(fā)表于 09-18 13:15 ?21次下載
    <b class='flag-5'>C8051F020</b><b class='flag-5'>單片機</b>的直流穩(wěn)壓電源設計

    PIC單片機C8051F020單片機的串行通訊

    電子發(fā)燒友網(wǎng)站提供《PIC單片機C8051F020單片機的串行通訊.pdf》資料免費下載
    發(fā)表于 10-25 10:10 ?2次下載
    PIC<b class='flag-5'>單片機</b>與<b class='flag-5'>C8051F020</b><b class='flag-5'>單片機</b>的串行通訊

    基于C8051F020單片機的串口通信應用

    電子發(fā)燒友網(wǎng)站提供《基于C8051F020單片機的串口通信應用.pdf》資料免費下載
    發(fā)表于 10-25 10:35 ?5次下載
    基于<b class='flag-5'>C8051F020</b><b class='flag-5'>單片機</b>的串口通信應用