緊密結合的高科技產品,是鍵盤、鼠標之後的主要電腦輸入設備。從直接的圖片、照片、膠片等圖紙到文稿都可用掃碼槍輸入到計算機中,實現信息處理、管理、使用、儲存或輸出。適用於物流、工廠、碼頭等工作環境惡劣,且工作負荷較高的行業。
i.MX 6ULL系列具有一個單核Cortex-A7平台,運行頻率最高可達900 MHz,配備128KB L2緩存和16位DDR3/DDR3L/LPDDR2支持,是一個高效率、高性價比應用處理器系列。
? i.MX6ULL應用處理器方框圖
硬體設計說明:
i.MX 6ULL開發板的功能電路及接口非常豐富,針對於掃碼槍,硬體部分我們只需要在上面做減法,保留開發板方框圖中的黃色部分。
? i.MX6ULL開發板部分原理圖
? i.MX6ULL開發板PCB Layout
軟體設計說明:
本軟體系統採用的是Linux系統,Linux具有開源、快速移植、應用廣泛的特點,整個系統包括uboot、Linux Kernel、rootfs。由於將uboot、kernel、rootfs都放在16或32MB SPI Nor Flash中,並且要求快速啟動,因此軟體設計的一個任務是要對Linux系統進行裁剪使儘可能小。本章節主要對uboot、kernel、rootfs的移植裁剪以及應用程序測試說明。
1、Uboot
uboot是bootloader,主要任務是初始化ARM、時鐘、外部DDR3、QSPI Nor Flash等,以及將Kernel從SPI Nor Flash中複製到DDR3中運行引導起來。
i.MX6ULL上電啟動過程中首先是執行ROM Boot,讀到QSPI啟動方式設置後(硬體電路需先設置成QSPI啟動),先執行spiflash中的uboot,為了更快地運行uboot,需要對uboot進行移植裁剪,同時刪除一些不必要的功能。
(1)uboot配置和修改
uboot配置通過窗口菜單的形式可以配置,在uboot當前路徑中執行以下命令:
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make menuconfig
然後會彈出下圖窗口:
在窗口中菜單中進行配置,選擇SPI Flash驅動,同時將一些不必要的功能去掉如net、fs、I2C等,將delay參數改成0,另外可以對uboot的源碼進行刪減,以儘可能地加快uboot的啟動。
(2)uboot編譯
export CROSS_COMPILE=arm-poky-linux-gnueabi-
export ARCH=arm
make clean
make u-boot.imx
最後編譯出u-boot.imx,可以用於下載到spi flash中。
2、Linux Kernel
Linux Kernel是整個系統的核心部分,其可靠性和穩定性與否決定了整個系統的可行性,硬體驅動程序也其中。NXP同樣提供基於i.MX6ULL的Linux源碼,在此基礎上進行移植裁剪。
(1)Linux移植
export CROSS_COMPILE=arm-poky-linux-gnueabi-
export ARCH=arm
make imx_v7_defconfig
打開配置窗口,執行以下命令:
make menuconfig
然後會彈出以下配置窗口:
增加I2C、Carmera ov5640以及spi flash驅動,並將一些不要的net和驅動去掉。
Ov5640驅動配置在Device Drivers--->Multimedia support-->V4L platform devices
另外,需要在設備樹文件imx6ull-14x14-evk.dts中的I2C增加ov5640的一些參數配置,如下圖所示:
(2)Linux Kernel編譯
執行以下命令編譯
make
最後會編譯出zImage 和imx6ull-14x14-evk.dtb,可以用於下載到spi flash。
3、rootfs
為了執行應用程序,需要移植rootfs,通過buildroot可以裁剪出最小的rootfs,rootfs以initramfs形式通過
kernel引導起來。
(1)下載buildroot源碼:
git clone git://git.buildroot.net/buildroot
(2)配置和編譯
make menuconfig
make
然後會編譯出最小的rootfs
將rootfs放在kernel同級目錄,在Linux Kernel中配置initramfs,可以與kernel編譯在一起。
4、下載
使用NXP提供的uuu工具將uboot和zImage以及imx6ull-14x14-evk.dtb下載到spiflash中
uuu uuu-spi
下載成功後然後上電啟動後,調試串口輸出一些啟動信息:
5、測試攝像頭
執行以下命令:
# /usr/mx6s_v4l2_capture.out -m 1
然後會在LCD屏上顯示攝像頭採集的圖像:
在掃碼槍的應用中,需要另外開發識讀二維碼算法或者購買第三方的算法移植,以實現掃碼的功能。
►場景應用圖
►產品實體圖
►展示板照片
►方案方塊圖
►核心技術優勢
●PCB板層:核心板4層,外圍板2層; ●工作溫度:工業級-40 ℃ ~ 105 ℃; ●封裝:14x14mm, 0.8mm間距,和9x9mm, 0.5mm間距,兩種BGA封裝可選; ●功耗低:深度睡眠模式,10.7mW; 系統空閒模式,20.6mW,詳見附件文檔AN5345.pdf. ●可擴展性好,IO接口豐富; ●啟動速度快:約2S(從上電開始到應用程序加載之前)。
►方案規格
●工作電壓:DC5V±10%; ●掃描條碼類別:一維碼,二維碼。 ●識讀精度:≥4mil.