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