類別 集成電路 (IC) MT48LC2M32B2P-7
家庭 存儲器
格式 - 存儲器 RAM
存儲器類型 SDRAM
存儲容量 64M (2M x 32)
速度 143MHz
接口 并聯
電壓 - 電源 3 V ~ 3.6 V
工作溫度 -40°C ~ 85°C
封裝/外殼 86-TFSOP(0.400",10.16mm 寬)
MT48LC2M32B2P-7
是一種獨立控制器用于移動目標和一般工業環境中的區域網絡控制(CAN)。它是Philips半導體公司的PCA82C200 CAN控制器(BasicCAN)的替代產品。而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN2.0B協議。其內部體系結構如下圖1所示。
CAN核心模塊控制CAN幀的發送和接收。接口管理邏輯負責連接外部主控制器,該控制器可以是衛星控制器件或任何其他器件。經過SJA1000復用的地址/數據總線訪問寄存器和控制讀/寫選通信號都在這處理。SJA1000的發送緩沖器能夠存儲一個完整的報文(擴展或標準的)MT48LC2M32B2P-7
。當主控制器初始化發送,接口管理邏輯會使CAN核心模塊從發送緩沖器讀CAN報文。當收到一個報文時,CAN核心模塊將串行位流轉換成用于驗收濾波器的并行數據。通過這個可編程的濾波器,SJA1000能確定主控制器要接收哪些報文。所有收到的報文由驗收濾波器驗收并存儲在接收FIFO。儲存報文的多少由工作模式決定,最多能存儲32個報文。
2流接口驅動程序工作機制
相比于本機設備驅動程序,流接口驅動程序表現為一個動態鏈接庫,由設備管理器統一加載、管理和卸載。與具有單獨目的的內部設備驅動程序相比,所有的流接口驅動程序都是用同一組接口并調用同一個函數集——流接口函數。Win CE的文件系統通過這些人口點函數與流接口驅動進行通信,從而達到應用程序訪問驅動程序、操作硬件的目的。流接口驅動程序要實現的DLL接口見表1。
在實際的開發中,MT48LC2M32B2P-7
上述接口名稱中的XXX三個字母被具體設備的設備文件名所代替。流接口驅動程序通過編譯后,生成DLL文件,即動態鏈接庫文件。
3 CAN總線控制器SJA1000驅動程序設計
CAN總線控制器SJA1000驅動采用流接口驅動程序模型,要實現的流接口函數分別為CAN_Init,CAN_Deinit,CAN_Open,CAN_Close,CAN_Read,CAN_Wfite,CAN_IOControl等。應用程序使用CreatFile()函數以文件的方式打開CAN控制器驅動,以獲取驅動文件的句柄,然后使用該句柄調用DeviceloControl(),ReadFile(),WriteFile()函數來CAN控制器的各種功能。
由于篇幅有限,下面僅針對CAN_Init,MT48LC2M32B2P-7
CAN_Read和CAN_IntrThread函數的實現進行詳細的設計。
3.1 CAN_Init函數的設計實現
當用戶開始使用CAN總線控制器時,設備管理器調用這個函數來初始化控制器設備SJA1000。這個函數是通過設備管理器提供的ActiveDeviceEx()函數來調用的。函數執行后,如果成功就返回設備的句柄。CAN_Init函數的流程