液晶顯示器邊框精密檢測系統(tǒng)的實(shí)現(xiàn)
按照Cycle模式,其處理多通道數(shù)據(jù)的代碼如下(以地址為0x10的那片ADS8364為例):
PBDATDIR = 0XFFFB; // 給IOPB2一個低電平脈沖,復(fù)位ADS8364
asm (' NOP');
PBDATDIR |= 0X0004;
PBDATDIR = 0XFFFD; // 給IOPB1一個低電平脈沖,觸發(fā)ADS8364采樣
asm ('NOP');
PBDATDIR |= 0X0002;
Delay_2ms(); // 延時一段時間,等待采樣結(jié)束
/* 來自ADS8364的6個測量值:6個通道 */
Channel1 = port10;
Channel2 = port10;
Channel3 = port10;
Channel4 = port10;
Channel5 = port10;
Channel6 = port10;
3.2 基于CAN總線的通訊模塊
測距數(shù)據(jù)采集板發(fā)送測距數(shù)據(jù)以中斷的方式完成。TMS320LF2407有專門的mailbox中斷,用于響應(yīng)發(fā)送/接收中斷。每個接觸式傳感器的測距值在DSP內(nèi)用2個字節(jié)存儲,而CAN總線傳輸標(biāo)準(zhǔn)要求每個數(shù)據(jù)幀最多只能傳輸8個字節(jié)的數(shù)據(jù)。本系統(tǒng)有12個傳感器,共有24個字節(jié)存儲所有測距值。CAN總線傳輸所有測距值需要3個數(shù)據(jù)幀才能傳送完。該系統(tǒng)中將通訊模塊分成發(fā)送和接收模塊兩個部分。在設(shè)計(jì)中將發(fā)送和接收封裝成結(jié)構(gòu)體,大大簡化了通訊驅(qū)動模塊的設(shè)計(jì),并可將此通訊結(jié)構(gòu)應(yīng)用在任何CAN通訊方面,具有很強(qiáng)的通用性。
發(fā)送模塊:
typedef struct Transmit
{
BOOLEAN ExtendFlag; // 擴(kuò)展幀標(biāo)志
BOOLEAN RemoteFlag; // 遠(yuǎn)程幀標(biāo)志
LONG ID; // 本機(jī)地址
BYTE DataLen; // 發(fā)送數(shù)據(jù)長度
BYTE Data[8]; // 待發(fā)數(shù)據(jù)緩沖區(qū)
}TRANSMIT;
接收模塊:
typedef struct Receive
{
BYTE DataLen;
BYTE Data[8];
}RECEIVE;
編寫驅(qū)動函數(shù)不僅能省去對寄存器的繁瑣設(shè)置,使數(shù)據(jù)幀的發(fā)送和接收更方便,而且可使代碼具有很強(qiáng)的可移植性,調(diào)用驅(qū)動函數(shù)的代碼完全可以在不同的系統(tǒng)中移植,只要改寫驅(qū)動函數(shù)部分即可。
本文介紹的顯示器邊框檢測系統(tǒng)采用接觸式測距的方式,并用TMS320LF2407作為核心處理器,可以達(dá)到很高的測量精度。通過CAN總線通訊,可以將測量數(shù)據(jù)可靠地發(fā)給PC機(jī),并實(shí)現(xiàn)大規(guī)模檢測。此系統(tǒng)已經(jīng)在實(shí)際生產(chǎn)中得到應(yīng)用,驗(yàn)證了硬件系統(tǒng)的可靠性和穩(wěn)定性。
評論