在現(xiàn)代工業(yè)自動(dòng)化生產(chǎn)中,涉及到各種各樣的檢驗(yàn),、生產(chǎn)監(jiān)控及零件測量,、識(shí)別應(yīng)用等環(huán)節(jié),然而通常人眼很難連續(xù),、穩(wěn)定地完成這些帶有高度重復(fù)性和智能性的工作,,一般物理量傳感器也較難實(shí)現(xiàn)這些功能。而利用光電成像系統(tǒng)采集被檢測目標(biāo)的圖像,,并經(jīng)計(jì)算機(jī)或?qū)S玫膱D像處理模塊進(jìn)行數(shù)字化處理,。與一般圖像處理系統(tǒng)相比,自動(dòng)光學(xué)檢測更強(qiáng)調(diào)精度,、速度,,以及工業(yè)現(xiàn)場環(huán)境下的可靠性。因此,,這里提出一種基于CAN總線的自動(dòng)光學(xué)檢測通信系統(tǒng)設(shè)計(jì)方案,,該系統(tǒng)設(shè)計(jì)能夠滿足PCB自動(dòng)光學(xué)檢測控制系統(tǒng)的指標(biāo)要求。
1 自動(dòng)光學(xué)檢測通信系統(tǒng)分析
自動(dòng)光學(xué)檢測系統(tǒng)具有快速準(zhǔn)確,、可重復(fù)性強(qiáng)以及自動(dòng)化程度高等特點(diǎn),。自動(dòng)光學(xué)檢測技術(shù)的出現(xiàn)極大地減輕了人工檢測的壓力,解決了傳統(tǒng)人工檢測中的許多問題,,提高了產(chǎn)品的檢測質(zhì)量和速度,,為工業(yè)領(lǐng)域自動(dòng)檢測提供了革命性的解決方案,。
分布式的現(xiàn)場總線能同時(shí)滿足過程控制和制造業(yè)自動(dòng)化的需要,成為了該自動(dòng)光學(xué)檢測系統(tǒng)的最佳選擇,。分布式的現(xiàn)場總線控制系統(tǒng)比集散型控制系統(tǒng)更好地體現(xiàn)了 “信息集中,、控制分散”的特點(diǎn)。且分布式控制系統(tǒng)在適用范圍,、可擴(kuò)展性,、控制速度、系統(tǒng)模塊化,、可維護(hù)性,、抗單點(diǎn)故障等方面具有明顯優(yōu)勢。
控制器局域網(wǎng)(CAN)總線是一種在工業(yè)控制中應(yīng)用的總線,,帶寬利用率高,,糾錯(cuò)能力強(qiáng),并且廢除了傳統(tǒng)的站地址編碼,,采用對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,可以多主方式工作;運(yùn)用非破壞性仲裁技術(shù),,有效避免了總線沖突;短幀結(jié)構(gòu),,數(shù)據(jù)傳輸時(shí)間短,受干擾的概率低,,重新發(fā)送的時(shí)間短;每幀數(shù)據(jù)都有CRC校驗(yàn)及其他檢錯(cuò)措施,,保證了數(shù)據(jù)傳輸?shù)母呖煽啃裕m用于高干擾環(huán)境下;節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,,具有自動(dòng)
關(guān)閉總線功能,,使總線上其他操作不受影響;可以點(diǎn)對(duì)點(diǎn),一對(duì)多及廣播集中方式傳送和接收數(shù)據(jù),。因此,,CAN總線滿足該控制系統(tǒng)的數(shù)據(jù)總線要求。
本設(shè)計(jì)采用英飛凌開發(fā)的16位微控制器系列中的XCl64CS為控制器,,并成功地將其應(yīng)用到PCB板面缺陷自動(dòng)光學(xué)檢測儀的控制系統(tǒng),。
2 通信系統(tǒng)總體設(shè)計(jì)方案
2.1 系統(tǒng)組成原理
自動(dòng)光學(xué)檢測系統(tǒng)由上板部分、掃描正面,、掃描反面,、分揀1、分揀2以及主機(jī)共6部分組成,,整個(gè)系統(tǒng)使用的電機(jī)有5類共19個(gè),、氣缸11個(gè)以及各類傳感裝置若干。整個(gè)系統(tǒng)架構(gòu)如圖1所示,。

由于整個(gè)控制系統(tǒng)對(duì)實(shí)時(shí)性,、穩(wěn)定性以及協(xié)調(diào)性要求很高,,整個(gè)控制模式分為制作標(biāo)準(zhǔn)板模式、單步運(yùn)行模式以及檢測模式,,對(duì)于模式間轉(zhuǎn)換的靈活性要求也很高,。而分布式控制系統(tǒng)因其具有高可靠性、開放性,、靈活性,、協(xié)調(diào)性、控制功能齊全和易于維護(hù)等特點(diǎn),,完全滿足本控制系統(tǒng)的要求,。
分布式控制系統(tǒng)使用較多的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有星型、環(huán)型和總線型3種,。其中星型結(jié)構(gòu)(中央控制型)中所有通信都經(jīng)中央控制節(jié)點(diǎn),,若中央控制節(jié)點(diǎn)有故障,則整個(gè)系統(tǒng)就會(huì)癱瘓;環(huán)型結(jié)構(gòu)中相鄰控制節(jié)點(diǎn)順序連接,,形成環(huán)路,,信息一般僅以一個(gè)方向在環(huán)上從源節(jié)點(diǎn)傳送到目的節(jié)點(diǎn),發(fā)生故障時(shí)可支持雙向傳輸,,但環(huán)路一般封閉,,不利于節(jié)點(diǎn)的擴(kuò)充;而總線型結(jié)構(gòu)的所有節(jié)點(diǎn)都共享一個(gè)公共的物理通道(即總線),因此網(wǎng)絡(luò)上的任意一個(gè)節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,,且具有延遲小,、速度快、易擴(kuò)展,、單個(gè)節(jié)點(diǎn)故障影響小的優(yōu)點(diǎn),。因此,該控制系統(tǒng)采用總線型拓?fù)浣Y(jié)構(gòu),,如圖2所示,。

2.2 CAN總線硬件電路設(shè)計(jì)
為了保證控制系統(tǒng)的技術(shù)指標(biāo),完成實(shí)時(shí)數(shù)據(jù)處理和電路保護(hù)功能,,并考慮到系統(tǒng)的擴(kuò)展性,,采用16位微控制器系列中的XCl64CS。該芯片尺寸小,、運(yùn)算速度高,,并集成有TwinCAN模塊,該模塊用于控制幀的自動(dòng)發(fā)送和接收,。該模塊有2個(gè)全功能的CAN節(jié)點(diǎn)共享模塊的資源,,提供32個(gè)報(bào)文對(duì)象,它們可獨(dú)立分配給2個(gè)CAN節(jié)點(diǎn)中的任意一個(gè),,還可以組合構(gòu)成FIFO結(jié)構(gòu),。每個(gè)報(bào)文對(duì)象分別對(duì)應(yīng)有利于濾波的驗(yàn)收屏蔽寄存器,。
全CAN功能和FIFO結(jié)構(gòu)的靈活組合可滿足復(fù)雜嵌入式控制應(yīng)用的實(shí)時(shí)要求。CAN總線監(jiān)控功能的增強(qiáng)以及報(bào)文對(duì)象個(gè)數(shù)的增加使得CAN的總線通信處理更加精確和方便,。網(wǎng)關(guān)功能允許在2個(gè)獨(dú)立的CAN總線系統(tǒng)之間進(jìn)行自動(dòng)數(shù)據(jù)交換,,減輕了CPU負(fù)載,提高了整個(gè)系統(tǒng)的實(shí)時(shí)性,。2
個(gè)CAN節(jié)點(diǎn)的位定時(shí)都從主時(shí)鐘得到,,可通過編程使數(shù)據(jù)速率達(dá)到1 Mb/s,
CAN總線收發(fā)器采用英飛凌公司的TLE6250G,,支持傳送速率高達(dá)1 Mb/s,,具有抗瞬變、抗射頻和抗電磁干擾的特性,,并具有寬泛的工作范圍(-40~150℃),,以及短路保護(hù)和過溫保護(hù)功能。具體的CAN總線節(jié)點(diǎn)原理圖設(shè)計(jì)如圖3所示,。

另外,,總線連接時(shí)兩端各加一只120 Ω的電阻,它們對(duì)于匹配總線阻抗起著相當(dāng)重要的作用,,可減少信號(hào)反射干擾,。
2.3 CAN總線節(jié)點(diǎn)軟件設(shè)計(jì)
CAN總線節(jié)點(diǎn)軟件設(shè)計(jì)與整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性密切聯(lián)系。本系統(tǒng)中各部分間的數(shù)據(jù)交換比較頻繁,,CAN總線上傳輸?shù)臄?shù)據(jù)幀包括有:1)主機(jī)發(fā)送的控制指令幀,主機(jī)控制著整個(gè)系統(tǒng)的工作模式,,通過PCB板為好板或壞板的信號(hào)來控制分揀1和分揀2的運(yùn)作;2)各控制部分傳給主機(jī)的狀態(tài)信息,,將正在上板中、正在出板中或者系統(tǒng)故障等消息傳給主機(jī),,方便操作人員實(shí)時(shí)了角整個(gè)系統(tǒng)信息;3)各控制部分之間的信息交換,,如上板部分檢測到一批PCB板檢測完成,通知分揀部分出板的信號(hào),,任何部分檢測到故障通知報(bào)警信號(hào)等,。
根據(jù)系統(tǒng)的實(shí)際情況未編寫相應(yīng)的軟件程序。這里使用的XCl64CS單片機(jī)的CAN控制器遵循CAN V2.0B規(guī)范,。報(bào)文緩存單元最多保存32個(gè)報(bào)文對(duì)象,,每個(gè)對(duì)象的最大數(shù)據(jù)長度為8字節(jié)。每個(gè)報(bào)文對(duì)象有一個(gè)標(biāo)識(shí)符和自己的控制和狀態(tài)位集,。通過控制相應(yīng)寄存器來存放通信時(shí)發(fā)出或者接收到的數(shù)據(jù)以及報(bào)文寄存器組的設(shè)置,。對(duì)報(bào)文寄存器進(jìn)行初始化之后,報(bào)文緩存單元無需CPU監(jiān)控就能夠處理數(shù)據(jù)的接收和發(fā)送,,簡化了軟件代碼的編寫,。而CPU通過訪問CAN控制器狀態(tài)寄存器或者由CAN控制器以中斷的方式通知CPU,,即可得到當(dāng)前通信狀態(tài),從而節(jié)省了CPU的占用時(shí)間,。
2.3.1 CAN控制器的初始化
要實(shí)現(xiàn)CAN通信,,首先要對(duì)CAN控制器進(jìn)行正確初始化設(shè)置。初始化主要完成下面的工作:節(jié)點(diǎn)控制寄存器ACP/BCR的設(shè)定;CCE和 INIT置位;錯(cuò)誤計(jì)數(shù)器最大值的設(shè)定;節(jié)點(diǎn)輸出管腳的設(shè)定;節(jié)點(diǎn)傳輸速率的設(shè)定;給節(jié)點(diǎn)配置發(fā)送,、接收消息體,。對(duì)于XCl64CS,CAN控制器的初始化可以使用DAVE進(jìn)行配置,,來自動(dòng)生成代碼,,也可以用戶自行編寫。初始化流程如圖4所示,。

以下為相應(yīng)的程序代碼:

2.3.2 CAN控制器的發(fā)送和接收程序
CAN模塊初始化成功后,,就可以用其來傳送報(bào)文。節(jié)點(diǎn)向總線上發(fā)送報(bào)文的過程是:將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式,,寫入發(fā)送緩沖區(qū),,并自動(dòng)發(fā)送。數(shù)據(jù)幀一幀最多只能傳輸8個(gè)字節(jié),,大于8個(gè)字節(jié)的按照每8個(gè)字節(jié)為一幀傳送,,剩下不足8個(gè)字節(jié)的補(bǔ)成8個(gè)字節(jié)??梢栽诔绦蛑兄苯诱{(diào)用 CAN_vTransmit函數(shù)即可實(shí)現(xiàn)發(fā)送數(shù)據(jù),,該函數(shù)定義如下:
接收數(shù)據(jù)有查詢方式或中斷方式。這里采用中斷方式,,要實(shí)現(xiàn)的功能是:進(jìn)入中斷接收程序,,判斷中斷是否是接受中斷;若是將數(shù)據(jù)讀出緩存器并進(jìn)行判斷,再進(jìn)入相應(yīng)的命令和數(shù)據(jù)處理函數(shù),??刂破鹘邮蘸桶l(fā)送流程如圖5所示。

3 結(jié)束語
該自動(dòng)光學(xué)檢測通信系統(tǒng)已經(jīng)實(shí)現(xiàn)且通過了聯(lián)調(diào),,數(shù)據(jù)傳送穩(wěn)定,,并已應(yīng)用于PCB板面缺陷自動(dòng)光學(xué)檢測儀的控制系統(tǒng)。該自動(dòng)光學(xué)檢測通信系統(tǒng)滿足可靠性和靈活性的高要求,,實(shí)現(xiàn)控制系統(tǒng)各單元相對(duì)獨(dú)立,,各單元之間的連線簡潔,使系統(tǒng)操作簡單,,使用可靠,,取得了良好的使用效果。