999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CAN總線的分布式倉儲系統設計

2020-01-03 01:24:36
計算機測量與控制 2019年12期
關鍵詞:單片機

(1.中國人民解放軍66294部隊,北京 100042;2.中泰證券股份有限公司,濟南 250000)

0 引言

在倉儲管理領域中,傳統倉儲平臺普遍存在自動化程度低、控制不便及數據存儲查詢節點遠離現場等問題,在倉儲作業中,往往仍以人力為主,缺少自動化控制體系。針對上述問題,本文設計了一種基于CAN總線的分布式倉儲系統,通過遠程控制貨柜開閉,驗證CAN總線在倉儲系統自動化控制中應用的可行性。系統由控制站與現場網絡兩級構成,控制站為帶有CAN收發設備的便攜式計算機,現場網絡由多個受控節點組成,每個節點以高性能單片機為核心、CAN收發設備作為外圍網絡接口、帶有可控電磁鎖的貨柜為動作執行部分,操作人員可以在控制站查看貨柜物資并根據需求對貨柜的開啟與關閉進行控制。

1 CAN總線概述

1.1 CAN總線特點

CAN(Controller Area Net,控制器局部網),作為現場總線之一,是一種有效支持分布式控制或實時控制的串行通信網絡。CAN最早應用于汽車工業,由于其高性能、高可靠性以及獨特的設計而越來越受到人們的重視,后在電力、制造、冶金以及航天等不同行業普及,目前CAN已經成為一種國際標準(ISO-11898),是最有前途的現場總線之一。CAN總線特點如下:

1)兩線通信,只需兩根線即可連接最多128個設備;

2)接口芯片支持8位、16位單片機,目前多種嵌入式微控制器均集成了CAN通信控制器;

3)CAN可以以多主機方式工作,網絡上任意一個節點均可以在任意時刻向其他節點發送信息,不分主從,通信方式靈活;

4)CAN通信距離最遠可達10 Km(5 KBps),通信速率最高可達1 MBps(40 m),具有優秀的幀校驗及錯誤處理能力。

1.2 CAN總線物理結構

CAN總線的核心是控制器和收發器。CAN控制器的作用是將需要收發的數據按照CAN的幀格式和編碼方式轉換成協議數據流(發送),或者解碼(接收)。CAN收發器的作用是將控制器發送來的TTL信號轉換為CAN標準的差分信號,收發器與物理實體線直接相連。

CAN總線網絡由兩條信號線組成,分別為CAN_H與CAN_L,各個節點通過這兩條線實現信號的串行差分傳輸。CAN能夠使用多種物理介質,如雙絞線、光纖等,最常用的就是雙絞線。同時,為避免信號的干擾和反射,常在CAN_H于CAN_L間接入阻值為120 Ω的電阻。

1.3 CAN協議

CAN總線的數據傳輸采用“不歸零碼”,其數值為兩種互補邏輯:“顯性”及“隱性”,顯性數值表示邏輯“0”,隱性數值表示邏輯“1”。CAN協議中有兩種邏輯判定標準,分別為ISO11898和ISO11519,兩者差分電平特性不同。ISO11898為高速傳輸標準,當CAN_H與CAN_L電壓差為0時,邏輯信號表現為“隱性”,反之,當兩線間壓差等于2 V時,邏輯信號表現為“顯性”。ISO11519為低速傳輸標準,當CAN_H與CAN_L電壓差為-1.5 V時,邏輯信號表現為“隱性”,反之,當兩線間壓差等于3 V時,邏輯信號表現為“顯性”。ISO11519標準如圖1所示。

圖1 ISO11519標準中的總線數值表示

CAN總線協議中約定了5個不同的報文格式:數據幀、遠程幀、錯誤幀、過載幀以及隔離幀。其中,數據幀分為標準幀和擴展幀兩種,主要功能是將數據從發送器傳輸到接收器;遠程幀和數據幀非常類似,只是遠程幀沒有數據域,其主要由數據接收端發送,作為請求發送數據的標識;錯誤幀是當總線的某一個節點檢測到錯誤后進行發送的,會使總線上所有節點都檢測到一個錯誤,因此當有任何一個節點發生錯誤是,總線上的其他節點也會發出錯誤幀;過載幀是接收節點用來向發送節點告知自身接收能力的幀,當某個節點數據處理能力不足時,發送過載幀。圖2是標準數據幀的結構。

圖2 標準數據幀結構

2 分布式控制系統總體設計

系統分為控制站與現場網絡兩部分,控制站用于與操作人員交互,接受操作指令并將其傳送至現場網絡?,F場網絡由多個存儲柜組成,每個存儲柜自成控制節點,接受控制站送來的指令,并將其轉化為控制動作??刂普炯艾F場網絡間利用CAN總線相連,拓撲結構如圖3所示。

圖3 系統拓撲結構

由于當總線空閑時,任何節點都能向線上發送報文,如果兩個以上節點同時發送,就可能導致總線訪問沖突。為了解決總線上多點競爭的問題,CAN協議中給出了總線仲裁的解決方案。即出現沖突時,每個發送節點都需要對發送的電平與被監控的總線電平進行比較。當電平相同時,這個節點可以繼續發送;當電平不同,例如發送的是隱性邏輯信號而監視到的是顯性邏輯信號,則該節點失去仲裁,必須退出發送狀態。同時,在常用幀的優先級判定上,遵循3個原則:

1)幀標識符(ID)越小,優先級越高;

2)由于數據幀的RTR位為顯性電平,遠程幀為隱性電平,所以在某2幀或多幀標識符相同的情況下,數據幀具有更高的優先級;

3)由于標準幀的IDE位為顯性電平,擴展幀的IDE位為隱形電平,對于前11位ID相同的標準幀和擴展幀,標準幀具有更高的優先級。

3 控制站設計

為簡化系統結構,控制站采用便攜式計算機加CAN總線收發器的設計,便攜式計算機與CAN總線收發器以RS-232串行接口進行連接。在軟件設計上,編寫包含與CAN總線收發器通信等功能函數的動態鏈接庫“controlCAN.dll”,實現了CAN總線通信功能的模塊化封裝,使其可以適用于多種不同語言。

同時,控制站上整合了倉儲物資的數據庫,在控制站上可以實現對物資的信息查詢機處理。

4 控制節點設計

4.1 硬件設計

控制節點可實現三大功能,分別為中央控制、CAN總線通信、動作執行以及狀態反饋及顯示。

4.1.1 中央控制部分

該部分以89C52單片機為核心,主要用于通過與控制站進行信息交互,依據接收控制站發送的信息,生成控制指令,將控制指令發送給執行部分執行控制動作,同時將傳感器反饋的受控對象狀態返回至控制站。另外,還通過MAX232芯片擴展了備用的RS-232串行接口。

單片機與CAN總線控制器通過地址總線與數據總線的方式連接,占用P0接口,單片機的P1接口用于為動作執行部分發送控制指令,P2及部分P3接口用于接收并顯示狀態反饋信號。

圖4 中央控制部分電路

4.1.2 CAN總線通信部分

采用CAN總線控制芯片SJA1000以及CAN總線收發芯片82C250實現CAN總線通信功能,SJA1000與82C250部分電路如圖5所示。

圖5 CAN總線通信部分電路

SJA1000是NXP半導體生產的CAN總線控制器芯片,是常用的CAN總線控制器之一。其支持CAN2.0A與CAN2.0B兩種不同協議,兩種工作模式可以通過芯片內部時鐘分頻寄存器CDR的CAN模式位來選擇,本設計使用了CAN2.0B協議。SJA1000通過8位數據總線與單片機進行數據傳遞,單片機可以通過控制SJA1000的片選、讀允許、寫允許、地址鎖存等引腳實現對數據傳輸的時序控制。同時,SJA1000芯片的中斷輸出引腳與單片機的外部中斷INT0相連,以便于當接收到總線上傳來的數據后,能迅速引起中斷,及時對數據進行處理。CAN總線控制器的輸出與CAN總線收發器PCA82C250相連,TTL信號從控制器傳輸給收發器后,進行編碼處理。

PCA82C250芯片CAN總線收發器提供了CAN控制器與物理總線之間的接口,對總線提供差動發送能力,并對CAN控制器提供差動接收能力。SJA1000通過串行數據輸出線(Tx)與串行數據輸入線(Rx)連接到PCA82C250上,收發器通過有差動發送和接收功能的兩個總線終端CAN_H與CAN_L連接到總線電纜,同時為了避免信號干擾,在兩根數據線之間接入阻值為120 Ω的電阻。當SJA1000輸出串行數據流至收發器時,收發器內部上拉功能將其拉至邏輯高電平,即總線輸出默認是隱性的。若數據是邏輯低電平,則總線的輸出級激活,輸出級由一個源輸出級與一個下拉輸出級組成,激活后會在總線電纜上產生一個顯性的電平信號。收發器中接收器的比較器將差分總線信號轉換成邏輯信號電平,并在Rx引腳輸出至總線控制器進行譯碼。接收器的比較器總是工作的,即當總線節點傳輸一個報文時,它同時也監控總線。

4.1.3 動作執行部分

動作執行部分由多路光電耦合器、固態繼電器以及柜體上電磁鎖組成。光電耦合器對單片機及繼電器進行了隔離,接到單片機控制指令后,9 V電源通過繼電器送入柜體電磁鎖,使電磁鎖動作。動作執行部分電路如圖6所示。

圖6 動作執行部分電路

對于上述控制部分,為每一路設計光電隔離,主要考慮兩個方面:一是切斷可能存在的信號干擾通道,避免核心電路受到外部干擾影響;二是保護內部核心電路,當外部執行機構出現瞬変脈沖等情況時,只會影響光電耦合器,不會對內部電路造成損壞。

同時,最初設計時,為了節省成本,執行機構控制部分所使用的均為電磁繼電器,但在測試中發現,電磁繼電器狀態變化時觸點上產生的火花會對CAN總線數據傳輸造成干擾,外加RC吸收電路后并無明顯改觀,因此在后續設計中執行機構控制部分一律使用固態繼電器。

4.1.4 狀態反饋部分

狀態反饋部分通過柜體上的傳感器向單片機返回箱門狀態,同時利用LED顯示相應狀態。

4.2 軟件設計

4.2.1 軟件總體設計及通信格式

軟件總體流程如圖7所示。

圖7 軟件總體流程

控制站與控制節點采用的通信數據格式如圖7所示。其中,以一個顯性位為幀頭,后以兩個字節數據發送標示符,包括11位接收設備地址以及1位數據/遠程幀標識位(RTR),本設計中,控制站的地址碼為0x0020,4個控制節點地址碼依次遞增,為0x0040、0x0080、0x00A0、0x00C0、0x00E0,RTR位為0。標示符之后,為四位數據長度碼,以字節為單位。長度碼后為1字節數據。之后,為15位冗余校驗碼以及2位一致性檢驗位,最后由7個隱性位作為幀尾,結束本數據幀。

圖8 通信數據格式示意圖

4.2.2 SJA1000工作配置

CAN收發器SJA1000在工作前需要對其進行配置。SJA1000的模式寄存器各控制字如表1所示。

表1 信號調理電路輸出電壓試驗數據

其中,Bit0位(RM)為復位模式選擇,當RM=1時進入復位模式,當RM=0時退出復位模式。

配置時需通過設置模式寄存器使其進入復位模式,對SJA1000的配置主要設置工作模式、工作時鐘、中斷方式、本機地址、接收屏蔽、通信頻率等內容,詳細程序如下:

void SJA1000_Init(void){

uchar i;

MODE=0x01;// 進入復位模式

CDR=0x88;// 設置時鐘分頻器,設置工作模式

IER=0x0D;//開放接收中斷

ACR0=0x00;//設置本機地址碼為02

ACR1=0x40;

ACR2=0x00;

ACR3=0x00;

AMR0=0x00;//設置屏蔽碼

AMR1=0x00;

AMR2=0xFF;

AMR3=0xFF;

BTR0=0x00;//設置通信頻率為500Kbps

BTR1=0x1C;

OCR=0xAA;//設置輸出控制寄存器,正常輸出

TXERR=0x00;// 清除發送錯誤計數寄存器

i=ECC;// 清除錯誤代碼捕捉寄存器

MODE=0x08;//設置單濾波方式,進入工作模式

}

設置傳輸波特率是配置SJA1000重要的一環,傳輸波特率由總線定時寄存器0(BTR0)與總線定時寄存器1(BTR1)進行設置。BTR0定義了波特率預設值和同步跳轉寬度的值,BTR1定義了每個位周期的長度、采樣點的位置和在每個采樣點的采樣次數。

CAN系統時鐘由如下公式計算:

tSCL=2tCLK×(BTR0低6位數值+1)

(1)

通常來講,在外部時鐘為16 MHz時,總線定時器的值可以按表2參數確定。

表2 外部晶振頻率16 MHz時傳輸波特率及所對應寄存器參數

在配置中,開啟了單濾波模式的驗收濾波器。驗收濾波器包括驗收代碼寄存器(ACR)和驗收屏蔽寄存器(AMR)。信息標示符和驗收濾波器中預設值一致時,才會被SJA1000接收。驗收濾波器原理如圖9所示。

圖9 驗收濾波器工作原理

ACR定義所要接收信息標示符的值,AMR定義所要屏蔽的位,當AMR的某位值為1時,則對應的標示符位為需要驗收,而當其為0時,則對應的標示符位不需驗收。

4.2.3 數據發送與接收

數據發送時,用戶首先要將所發送的數據按照相關協議規定的格式,組成數據幀。將數據幀送入SJA1000發送緩沖區后,執行發送命令。SJA1000中,和數據發送密切相關的寄存器,主要有兩個,分別是用于設置發送模式的CMR寄存器以及用于監控總線狀態的SR寄存器。CMR寄存器如表3所示,通過其可以對數據發送進行設置。

表3 CMR寄存器

其中,TR為發送請求位,AT為終止傳送位,SRR為自接受請求位。

SR寄存器如表4所示。

表4 SR寄存器

其中,BS指示總線狀態,總線關閉時為0,總線開啟時為1;ES指示錯誤狀態,偵測到錯誤時該位置1;TS指示發送狀態,有數據正在發送時該位置1;RS指示接收狀態,有數據正在接收時該位置1;TCS指示發送完畢狀態,最后一次數據發送已被成功處理時,該位置1,否則置0;TBS指示發送緩沖器狀態,置1時表示可以向緩沖器中寫入數據,置0時表示緩沖器鎖定;DOS指示數據溢出情況,置1時表示報文因存儲空間不足有部分溢出丟失;RBS為接收緩沖器狀態,置1時表示緩沖器中有未處理的數據,置0時表示接收緩沖器為空。

發送命令執行前,一般需要進行發送檢查。檢查內容包括3個狀態位,一是RS,看控制器是否正在接收信息,如果是則需要等接收完成后才能申請發送;二是TCS,看是否還有未完成發送的信息,如果有,則需要等待發送完成后再申請發送;三是TBS,看發送緩沖區鎖定情況,如果處于鎖定狀態,需要待其清零后才能向緩沖區寫入數據。

接收數據時程序采用查詢方式,程序流程如圖10所示。

圖10 數據發送流程圖

為了保證較高的響應速度,程序中設置了中斷的方式用于接收數據。接收數據的流程與發送數據相似,也需要判斷多個狀態,主要涉及中斷狀態寄存器IR,其結構如表5所示。

表5 IR寄存器

其中,BEI為總線錯誤中斷位,檢測到總線錯誤時置1;ALI為仲裁丟失中斷位,出現丟失仲裁時置1;EPI為錯誤認可中斷位,當控制器達到錯誤認可狀態時置1;WUI為喚醒中斷位,當控制器從休眠狀態被喚醒時置1;DOI為數據溢出中斷位,當出現數據溢出時置1;EI為錯誤報警中斷位,當檢測到錯誤時置1;TI為發送中斷位,當一次發送完成時置1;RI為接收中斷位,當出現一次數據接收時置1。

首先,讀取中斷狀態寄存器IR,判斷是否存在錯誤或其它異常情況,如果有異常情況,需要先讀取中斷寄存器把錯誤標志清除,然后進行相應的處理;其次看是否出現數據溢出情況,如果有數據溢出,需要釋放掉接收緩沖區,將本次接收數據作廢;最后檢查是否存在其他錯誤;當以上檢查均無異常后,可正常進行數據接收,程序流程如圖11所示。

同時,當有數據到來時,SJA1000給單片機外部中斷0(INT0)發送一個中斷信號,單片機進入中斷。在INT0的服務程序中,單片機分別對總線狀態、數據溢出標志等進行讀取,判斷數據正常后,讀取數據并釋放緩沖區。

圖11 數據接收流程圖

5 結語

針對傳統倉儲平臺普遍存在自動化程度低,控制不便,數據存儲查詢節點遠離現場等問題,本文設計了一種基于CAN總線的由控制站與現場網絡構成的分布式倉儲系統。由于CAN總線具有傳輸距離遠(傳輸速率5 Kbps時直接傳輸距離可達10 km)的優點,系統的控制站可以脫離控制現場,并與前端的數據存儲與查詢系統整合。得益于CAN總線特點,在總線上可掛載多達110個節點,極大方便了倉儲貨柜的數量擴展。同時,在遠端的控制站可以有效可靠地對被控節點進行控制,說明CAN總線網絡在倉儲系統自動化控制設計中具有較高的實用性。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 亚洲第一黄色网| 国产91麻豆免费观看| 国产免费看久久久| 谁有在线观看日韩亚洲最新视频 | 人人爽人人爽人人片| 精品自窥自偷在线看| 国产美女人喷水在线观看| 在线a视频免费观看| 中文字幕在线免费看| 人妻一本久道久久综合久久鬼色| 免费aa毛片| 日韩人妻无码制服丝袜视频| 国产 在线视频无码| 日本人妻丰满熟妇区| 97视频在线观看免费视频| 国产h视频免费观看| 国产乱人免费视频| 天天摸夜夜操| 制服丝袜无码每日更新| 亚洲日本在线免费观看| 国产精品三级专区| 亚洲AV永久无码精品古装片| 亚洲91在线精品| 伊人久综合| 欧美激情视频一区| 亚洲精品动漫在线观看| 成人毛片免费在线观看| 美女视频黄又黄又免费高清| 国产精品蜜臀| 日本欧美成人免费| 欧美有码在线观看| 国产自无码视频在线观看| 91po国产在线精品免费观看| 亚洲综合日韩精品| 亚洲天堂啪啪| 自慰高潮喷白浆在线观看| 成人午夜网址| www.国产福利| 99久久国产综合精品女同| 成人国产精品一级毛片天堂| 久久精品人人做人人爽97| 国产丰满大乳无码免费播放| 欧美日韩久久综合| 久久精品亚洲专区| 亚洲精品中文字幕午夜| 日韩无码视频网站| 欧美成a人片在线观看| 日韩美毛片| 天堂中文在线资源| 国产好痛疼轻点好爽的视频| 亚洲中文字幕国产av| 久热中文字幕在线观看| 中文字幕人妻av一区二区| 亚洲无线一二三四区男男| 99视频在线免费观看| 97se亚洲综合在线韩国专区福利| 成人亚洲天堂| 欧美精品一区二区三区中文字幕| 日韩视频福利| 中文字幕日韩欧美| 国产肉感大码AV无码| 国产成人h在线观看网站站| 久久国产精品电影| 91久久国产成人免费观看| 91青青在线视频| 国产女人在线观看| 欧美精品色视频| 亚洲欧洲天堂色AV| 国产福利一区视频| 99re热精品视频国产免费| 免费在线不卡视频| 国产欧美日韩在线一区| 免费国产高清精品一区在线| www成人国产在线观看网站| 日本免费一区视频| 99视频精品在线观看| 亚洲色图另类| 亚洲国产清纯| 久久a毛片| 亚洲无码视频一区二区三区| 亚洲精品午夜天堂网页| 久久久久亚洲av成人网人人软件|