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