串口通訊在CCD相機(jī)系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1引言
CCD相機(jī)系統(tǒng)在運(yùn)行過程中,有許多來自工作現(xiàn)場的數(shù)據(jù)需要實(shí)時(shí)采集,處理和記錄。以便上級(jí)管理系統(tǒng)及時(shí)掌握相機(jī)的工作狀態(tài)。并且上級(jí)管理系統(tǒng)需要實(shí)時(shí)調(diào)整相機(jī)參數(shù),并發(fā)出相應(yīng)的指令,使得相機(jī)采集到的圖像像質(zhì)更好。
MCS-51單片機(jī)內(nèi)部含有一個(gè)可編程全雙工串行通信接口,該接口電路不僅能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個(gè)同步移位寄存器使用。MCS-51單片機(jī)串行口的結(jié)構(gòu)由串行口控制寄存器、發(fā)送和接收電路等三部分組成。
串行通信是一種能把二進(jìn)制數(shù)據(jù)按位傳送的通信,故它所需傳輸線條數(shù)極少,特別適用于分級(jí)、分層和分布式控制系統(tǒng)以及遠(yuǎn)程通信之中[1]。根據(jù)實(shí)際使用的需要,CCD相機(jī)系統(tǒng)與上級(jí)管理系統(tǒng)之間的通訊由單片機(jī)串口來完成。本文對(duì)該系統(tǒng)中的串行通信系統(tǒng)加以介紹。
2系統(tǒng)串行通訊體系
按照串行數(shù)據(jù)的同步方式,串行通信可以分為同步通信和異步通信兩類。本系統(tǒng)采用同步通信方式。數(shù)據(jù)的輸入和輸出接口有各自的時(shí)鐘來控制,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步[1]。
由于CCD相機(jī)系統(tǒng)的數(shù)據(jù)輸入和數(shù)據(jù)輸出不會(huì)在同一時(shí)刻進(jìn)行,本系統(tǒng)的串行通訊體系結(jié)構(gòu)包含以下幾個(gè)部分:單片機(jī)小系統(tǒng),串行數(shù)據(jù)輸入模塊,串行數(shù)據(jù)輸出模塊。其中單片機(jī)小系統(tǒng)結(jié)構(gòu)簡單,性能成熟,在這里不再贅述?,F(xiàn)就串口輸入、串口輸出模塊做出說明:
2.1串行數(shù)據(jù)輸入模塊
相機(jī)參數(shù)的注入由上級(jí)管理系統(tǒng)負(fù)責(zé),CCD相機(jī)系統(tǒng)通過數(shù)據(jù)總線將參數(shù)直接讀入相機(jī)系統(tǒng)中的單片機(jī)小系統(tǒng)。
數(shù)據(jù)輸入門控信號(hào)通過單片機(jī)P1口連接。當(dāng)上級(jí)管理系統(tǒng)欲向CCD相機(jī)系統(tǒng)注入調(diào)整參數(shù)指令時(shí),先使門控信號(hào)有效,單片機(jī)系統(tǒng)即準(zhǔn)備好接收數(shù)據(jù);然后在時(shí)鐘信號(hào)的配合下,一位一位地讀入數(shù)據(jù),并通過數(shù)據(jù)總線將并行數(shù)據(jù)讀入單片機(jī)。
2.2串行數(shù)據(jù)輸出模塊
在每個(gè)間隔時(shí)間到來時(shí),CCD相機(jī)系統(tǒng)向上級(jí)數(shù)據(jù)管理系統(tǒng)送出相機(jī)系統(tǒng)的參數(shù),以備檢查相機(jī)系統(tǒng)的狀態(tài)是否正常。電路設(shè)計(jì)如圖1。在方式0下,串行數(shù)據(jù)輸出電路通過幾個(gè)串入并出的移位寄存器,由MCS-51單片機(jī)的RxD線串行輸出數(shù)據(jù),并從移位寄存器的最高位串行輸出。
500)this.style.width=500;" border="0" />
3系統(tǒng)的串口通訊協(xié)議
3.1系統(tǒng)串口通訊協(xié)議特點(diǎn)
由于傳輸距離和可靠性的要求,該通訊協(xié)議具備如下特點(diǎn)[2]:
(1)采用一對(duì)一的通訊方式,無握手過程。通訊中,上級(jí)管理系統(tǒng)為主站,CCD相機(jī)系統(tǒng)為從站;
(2) 為了有效地識(shí)別相機(jī)參數(shù)。針對(duì)各項(xiàng)指令參數(shù)設(shè)定了各自的命令代碼,但幀長度保持不變。
(3)由于校驗(yàn)編碼是差錯(cuò)檢測的核心,對(duì)提高數(shù)據(jù)傳輸?shù)目煽啃苑浅V匾?,且奇偶校?yàn)方式簡單可行,故采用奇偶校驗(yàn)方式保證數(shù)據(jù)傳送的準(zhǔn)確性;
4系統(tǒng)串口通訊軟件實(shí)現(xiàn)
4.1通訊協(xié)議格式說明
以下對(duì)本系統(tǒng)的具體通訊協(xié)議格式進(jìn)行說明。該協(xié)議的數(shù)據(jù)包結(jié)構(gòu)大體如下所示:
500)this.style.width=500;" border="0" />
(1)幀頭
為了準(zhǔn)確發(fā)送和接收串口數(shù)據(jù).將幀頭設(shè)定為OxAA(10101010)。
(2)命令代碼
在本系統(tǒng)的通訊協(xié)議中,針對(duì)各項(xiàng)指令參數(shù)設(shè)定了各自的命令代碼,這里不作具體描述。
(3)數(shù)據(jù)代碼
數(shù)據(jù)代碼緊跟在命令代碼之后,用戶可根據(jù)情況取5位、6位、7位或8位、低位在前高位在后。
(4)奇偶校驗(yàn)位
奇偶校驗(yàn)這一字節(jié)是按照通常的通訊協(xié)議標(biāo)準(zhǔn)來計(jì)算的。即:一幀數(shù)據(jù)除幀頭外其它字節(jié)的累加和[3-4]。
4.2串口通訊的波特率
波特率是每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),單位是bps(bit per second),即位/秒。波特率是串行通信的重要指標(biāo),用于表征數(shù)據(jù)傳輸?shù)乃俣取2ㄌ芈试礁?,?shù)據(jù)傳輸速度越快。
同步通信的數(shù)據(jù)傳輸速率較高,通常可達(dá)56000bps或更高。但同步通信的缺點(diǎn)是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步。
4.3串口通訊軟件流程圖
在充分了解用戶需求的基礎(chǔ)上,首先確定系統(tǒng)結(jié)構(gòu),進(jìn)而確定軟件開發(fā)平臺(tái)和工具,采用自頂向下、逐步求精的設(shè)計(jì)方法劃分軟件的功能模塊和功能單元,可提高軟件開發(fā)的效率。
本系統(tǒng)使用串口的方式0,用匯編語言編程。軟件流程圖(只包含串口通訊子程序)如圖2所示。
500)this.style.width=500;" border="0" />
5結(jié)束語
用匯編語言進(jìn)行編程是實(shí)現(xiàn)串口通訊的一種較可靠的方式。本通訊模塊設(shè)計(jì)了具有自
身特點(diǎn)的串口通訊協(xié)議,有效解決了數(shù)據(jù)管理系統(tǒng)與CCD相機(jī)系統(tǒng)間的通訊問題。已經(jīng)成功應(yīng)用于某CCD相機(jī)系統(tǒng)。本設(shè)計(jì)對(duì)其他類型的串行通訊體系有一定的推廣和應(yīng)用價(jià)值。
本文作者創(chuàng)新點(diǎn):利用單片機(jī)串口,設(shè)計(jì)成串入并出的數(shù)據(jù)輸入口和串入串出的數(shù)據(jù)輸出口,硬件結(jié)構(gòu)簡單,性能可靠;使用在通訊中較少使用的串口方式0進(jìn)行通訊設(shè)計(jì)。