李群
【摘 要】本文通過嵌入式體系結(jié)構(gòu)的硬件開發(fā)平臺S3C2410處理器與嵌入式Linux操作系統(tǒng)設(shè)計了光電編碼器的嵌入式通訊系統(tǒng)。由于與處理器之間的SPI串行接口減少了總線的物理連接,從而使系統(tǒng)結(jié)構(gòu)簡單提高了系統(tǒng)的可靠性,更具有實時性。
【關(guān)鍵詞】光電編碼器;MCP2510;CAN總線;TJA1050
0.引言
本文采用三星公司提供的S3C2410處理器為CPU的嵌入式系統(tǒng)開發(fā)板為平臺,在其外部總線上擴展CAN總線接口芯片-MCP2510。詳細闡述了光電編碼器嵌入式通訊系統(tǒng)在嵌入式ARM920T硬件平臺體系下CAN總線的接口設(shè)計及嵌入式Linux操作系統(tǒng)下CAN總線的驅(qū)動程序設(shè)計。
1.光電編碼器嵌入式通訊系統(tǒng)設(shè)計
光電編碼器的信號經(jīng)過一系列的組件處理后,轉(zhuǎn)換成數(shù)字角度信號,通過嵌入式處理器S3C2410控制MCP2510CAN總線控制器通過TJA1050CAN總線收發(fā)器將光電編碼器的數(shù)字角度信號傳輸?shù)娇刂婆_中。這款通訊系統(tǒng)設(shè)計中,我的主要研究任務是實現(xiàn)該系統(tǒng)中MCP2510控制器與S3C2410處理器的接口設(shè)計及實現(xiàn)MCP2510驅(qū)動程序設(shè)計。
2.S3C2410擴展CAN總線接口
大多數(shù)嵌入式處理器都有SPI總線控制器,所以MCP2510可直接與SPI總線控制器相連,光電編碼器的串行通訊系統(tǒng)中,S3C2410處理器下的開發(fā)板中MCP2510組成的CAN節(jié)點接口硬件電路原理圖中,MCP2510使用3.3V電壓供電,它可以直接與S3C2410通過SPI總線(在S3C2410的 datasheet中把這個接口叫做SIO,同步串口)連接。相關(guān)的資源如下:使用一個擴展的I/O口作為片選信號,低電平有效;使用S3C2410的外部中斷6(EXINT6)作為中斷引腳,低電平有效;16MHz晶體作為輸入時鐘,MCP2510內(nèi)部有振蕩電路,用晶體可直接起振;使用TJA1050作為CAN總線收發(fā)器。
3.CAN節(jié)點的軟件設(shè)計
光電編碼器的串行通信系統(tǒng)中,MCP2510CAN節(jié)點的軟件設(shè)計主要包括兩部分:Linux內(nèi)核向ARM體系平臺的移植;CAN總線驅(qū)動程序設(shè)計:MCP2510的初始化;MCP2510發(fā)送和接受數(shù)據(jù)。
CAN總線驅(qū)動程序設(shè)計。
系統(tǒng)中CAN總線的數(shù)據(jù)接收和發(fā)送時兩個不同的線程。在驅(qū)動程序中建立數(shù)據(jù)發(fā)送和數(shù)據(jù)接收緩沖區(qū)。中斷處理程序只負責填充緩沖區(qū)的數(shù)據(jù),然后喚醒等待接受數(shù)據(jù)的任務。操作系統(tǒng)的中斷響應時間決定了CAN總線數(shù)據(jù)的收發(fā)速度。
3.1 MCP2510的初始化
初始化MCP2510相關(guān)參數(shù)。
在Linux驅(qū)動動態(tài)加載的時候要調(diào)用初始化函數(shù),完成以下任務:首先是軟件復位,進入配置模式;設(shè)置CAN總線波特率;關(guān)閉中斷,設(shè)置ID過濾器;切換MCP2510到正常狀態(tài);清空接受和發(fā)送緩沖區(qū);開啟接受緩沖區(qū),開啟中斷。
3.2 MCP2510發(fā)送數(shù)據(jù)
這里的CAN總線發(fā)送格式有兩種:當發(fā)送的數(shù)據(jù)緩沖區(qū)大小等于結(jié)構(gòu)體CanData時,發(fā)送整個CAN總線幀的數(shù)據(jù);當發(fā)送數(shù)據(jù)緩沖區(qū)小于8字節(jié)時,作為CAN總線數(shù)據(jù)發(fā)送,驅(qū)動程序會自動為此幀數(shù)據(jù)添加默認ID,這個ID事先通過ioctl設(shè)置好。MCP2510發(fā)送數(shù)據(jù)的程序片段如下:
3.3 MCP2510接收數(shù)據(jù)
CAN總線設(shè)備的數(shù)據(jù)接收過程中,當緩沖區(qū)中有數(shù)據(jù)時,直接讀取緩沖區(qū)中的數(shù)據(jù)。對于非阻塞的情況,直接返回-EAGAIN;對于阻塞情況,通過等待隊列mcp2510dev.wq等待系統(tǒng)接收到CAN總線數(shù)據(jù),程序片段如下:
4.總結(jié)
本文設(shè)計的光電編碼器的嵌入式通訊系統(tǒng),主要針對該通訊系統(tǒng)的總線控制進行硬件接口設(shè)計與CAN總線處理器MCP2510的軟件驅(qū)動程序設(shè)計和Linux內(nèi)核移植。。實驗證明,該款設(shè)計減低了系統(tǒng)功耗和成本、系統(tǒng)結(jié)構(gòu)簡單、提高了系統(tǒng)的可靠性、并且更具有實時性。這款CAN總線接口設(shè)計也可以應用到其它控制系統(tǒng)的CAN總線接口設(shè)計當中。
【參考文獻】
[1]鄒定海,葉聲華,王春和.用于在線測量的視覺檢測系統(tǒng)[J].儀器儀表學報,1995,16(4):337-340.
ZOUDH,YESHH,WANG CH H.A visual inspection system for on-line measurement[J].Chinese Journal of Scientific Instrument,1995,16(4):337-340.(in Chinese).
[2]周亙.微機在工件不圓度自動測量中的應用[J].基礎(chǔ)自動,2001,8(6):50-53.
ZHOUG.The application of computer in automatic measure of the non-round degree of the parts[J].Basic Automation,2001,8(6):50-53.(in Chinese).
[3]郭強生,靳衛(wèi)國,周慶亞.集成電路粘片機視覺檢測技術(shù)研究[J].電子工業(yè)專用設(shè)備,2005,34(7):34-40.
GUOQSH,JINWG,ZHOUQY.Vision inspection technology of IC die bonder[J].Equipment for Electronic Products manufacturing,2005,34(7):34-40.(in Chinese).
[4]WEIZHZH,ZHANG G J,LI X.The application of machine vision in inspecting position-control accuracy of motor control systems[C].Proceedingsofthe Fifth International Conference on Electrical Machines and Systems,Shenyang, P.R. China: ICEMS,2001:1031-1038.
[5]SCAMANME,ECONOMIKOSL.Computer vision for automatic inspection of complex metal patterns on multichip modules(MCM-D)[J].IEEE,1995,18(4):675-684.