引 言
臺灣聯(lián)發(fā)科技股份有限公司(MTK)提供的完整的手機、平板產(chǎn)品解決方案在國內(nèi)市場占有率很高[1]。MTK 相比高通平臺準(zhǔn)入門檻低,擁有更大的用戶群體,更多的開放資料可供參考。MTK chipsets 高集成套片方案和turnkey“交鑰匙”政策使得手機及相關(guān)二次開發(fā)的工作量大大降低,使 MTK 平臺在除手機以外的專業(yè)領(lǐng)域中應(yīng)用成為可能。
目前,移動智能設(shè)備的開發(fā)往往側(cè)重于特定的應(yīng)用領(lǐng)域, 如車載平臺、射頻識別、智能網(wǎng)關(guān)等[2]。在某一領(lǐng)域,這些設(shè)備往往功能相近、硬件系統(tǒng)相似,如果將處理器、射頻模塊、存儲器、通信模塊、電源管理等底層通用的模塊集成在一起, 封裝成一個大的“芯片”,并將常用接口引出,則整機的設(shè)計工作將大大簡化,而這個大芯片我們稱其為“核心板”。平臺核心板實物圖如圖 1 所示。將核心板作為一個獨立模塊分離出來,用戶只需要添加顯示屏、按鍵、傳感器等外設(shè),利用核心板搭載的安卓智能操作系統(tǒng)接上電池就能工作,這種“核心板+ 外設(shè)擴展”搭積木式的設(shè)計模式不僅降低了硬件的開發(fā)難度, 還提高了整機的穩(wěn)定性和可維護性。
1 巡檢儀設(shè)計方案
1.1 核心板選型
某煤礦安全管理項目需要開發(fā)一款手持巡檢記錄儀,要求具有“三違”現(xiàn)場取證、下井作業(yè)人員識別卡檢測、巡更軌跡信息記錄、井下設(shè)備資產(chǎn)管理、藍牙通信、WiFi 語音通話、圖片視頻采集及無線傳輸功能 [3]。根據(jù)上述功能需求,本文采取“核心板 + 外設(shè)擴展”的思路來實現(xiàn)。本設(shè)計采用MTK 手機平臺、MT6572 處理器及蘇州煜瑛微電子公司生產(chǎn)的YYW-M-6572 型核心板,該產(chǎn)品具有集成度高、功能完善、體積小、功耗低的優(yōu)點。核心板主要由MT6627 WiFi/ GPS/BT/FM 四合一通信 芯片、MT6572 CPU、MT6166 RF Transceiver 射頻模塊、MT6323 電源管理芯片、AW3210 充電管理芯片、SKY77590 功放芯片、存儲芯片構(gòu)成。其功能模塊示意圖如圖 2 所示, 有GPIO、UART、SPI、I2C、USB 等常用接口,且具有 WiFi、藍牙、GSM 等常用通信模塊,具有很強的可擴展性。
巡檢記錄儀的外設(shè)擴展部分除了可進行通用的LCD 及電容觸摸屏CTP、5M 自動對焦攝像頭等基礎(chǔ)外設(shè)擴展,還可針對井下設(shè)備資產(chǎn)管理和人員身份識別而采用非接觸式的RFID 自動射頻識別技術(shù),分別采用了 2.4 GHz NORDIC nRF24LE1 芯片和 13.56 MHz NXP MFRC522 射頻芯片[4]。
1.2 擴展外設(shè)選型
2.4 G 無線傳輸模式在無遮擋的環(huán)境下, 識別距離大約為幾十米,能滿足設(shè)備信息動態(tài)管理的要求。讀卡芯片采用 NRF24LE1 芯片, 對應(yīng)的射頻卡為有源卡, 內(nèi)部也采用NRF24LE1 芯片,由紐扣電池供電。由于芯片內(nèi)置高速單片機, 數(shù)據(jù)接收發(fā)送程序固化在芯片內(nèi)部,采用UART 接口接收上位機指令,讀卡器能對射頻卡進行讀寫操作[5]。
人員識別采用 13.56 MHz 的短距離射頻識別。卡片為采用無線感應(yīng)方式供電的無源卡, 兼容 ISO/IEC14443A 及MIFARE 協(xié)議,價格低廉,應(yīng)用廣泛。讀卡芯片采用NXP 公司生產(chǎn)的MFRC522 芯片,具有低電壓、低功耗、小尺寸、低成本等優(yōu)點, 兼容 ISO/IEC14443A 及MIFARE 模式。采用SPI 接口與上位機通信[6]。巡檢儀整機設(shè)計方案圖如圖 3 所示。
2 軟件設(shè)計
MTK 提供的 Turn key Solution 模式將芯片與手機開發(fā)所需的軟件平臺乃至第三方軟件捆綁銷售,提供了較健全的多媒體平臺解決方案。MTK 源代碼由核心板供應(yīng)商提供,目前推薦使用Ubuntu 10.04 搭建MTK android 編譯環(huán)境[7,8]。
安卓智能手機客戶端應(yīng)用程序是用Java 作為編程語言, 通過Eclipse 創(chuàng)建開發(fā),使用Java 開發(fā)包 JDK 及安卓 ADT 進行軟件開發(fā)和調(diào)試 [9]。軟件開發(fā)的主要工作是調(diào)試 UART 和SPI 接口的驅(qū)動程序。下面分四步簡單介紹SPI 驅(qū)動開發(fā)及應(yīng)用測試步驟:
在 SPI 驅(qū)動中,有兩個重要的結(jié)構(gòu),分別為 spi_device 與spi_driver。Spi_device 板信息用spi_board_info 結(jié)構(gòu)體來描述,它描述了SPI 外設(shè)(RC522 模塊)使用的主機控制器序號、片選信號、數(shù)據(jù)比特率、傳輸方式等。因此要先填充structspi_board_info 這個結(jié)構(gòu)體。注冊SPI 設(shè)備與驅(qū)動,通過 SPI 總線實現(xiàn)數(shù)據(jù)讀寫。這里注冊一個混合設(shè)備 :misc_ register(&rc522_misc_device);在 read,write 操作里都會調(diào) 用 到 WriteRawRC(unsigned char Address,unsigned char value)函數(shù),在這個函數(shù)里才真正實現(xiàn)了通過 SPI 對RC522寄存器的讀寫操作。
3 添加定時器
為了節(jié)省 CPU 資源,需要添加一個定時器,每隔一定的時間讀卡一次。把 pi_register_driver(&rc522_driver)和misc_register(&rc522_misc_device)放 進 rfid_rc522_init() 函數(shù)即可進行編譯調(diào)試。
編譯 rc522 驅(qū)動程序, 并通過adb usb 把生成的 rfid_ rc522.ko copy 到 /system 目錄下, 然后 insmodrfid_rc522.ko, 這樣驅(qū)動就以模塊的形式加載進了內(nèi)核系統(tǒng)。加載成功后,在/dev 目錄下就會有rfid_rc522_dev 目錄。
4 應(yīng)用程序測試
驅(qū) 動 中 的 write函 數(shù) 為 rc522_write(structfile*filp, constchar*buf,size_tcount,loff_t*f_pos);用戶空間的應(yīng)用程序write函數(shù)為 write(rc522_fd,bufpw1,sizeof(bufpw1));應(yīng)用程序中的write函數(shù)通過調(diào)用操作系統(tǒng)中的核心函數(shù)sys_ write(unsignedintfd,constchar*buf,size_tcount)來實現(xiàn)二者的聯(lián)系,而 sys_write()函數(shù)又對驅(qū)動中的 rc522_write() 進行了封裝。
結(jié) 語
本文介紹了一種基于核心板的快速產(chǎn)品開發(fā)方案,使用MTK 平臺核心板運行Andriod 4.4.2 操作系統(tǒng)。充分利用了手機平臺的高可靠性、電源管理的智能性,使得產(chǎn)品的設(shè)計周期縮短,可靠性增強。用戶只需要在手機系統(tǒng)的架構(gòu)上做調(diào)整, 專注軟件設(shè)計而不必擔(dān)心硬件的可行性 [10]。這為各專業(yè)領(lǐng)域移動智能設(shè)備的開發(fā)提供了新思路,特別適用于需要通信功能的手機平臺,同時也為掌握手機設(shè)計技術(shù)的行業(yè)用戶打破了行業(yè)技術(shù)壁壘,可以充分利用市場上成熟的手機生產(chǎn)供應(yīng)鏈, 具有較高的推廣價值[11]。