聯(lián)系我們
13482583038DX8加密芯片應(yīng)用開發(fā)手冊(二)
DX8加密芯片應(yīng)用開發(fā)手冊第二部分,主講DX8庫文件的接口回調(diào)函數(shù)的實現(xiàn)
5. 接口回調(diào)函數(shù)實現(xiàn)
u8_x dxif_transfer(u8_x *buf, u16_x len);
參數(shù): buf 發(fā)送或接收數(shù)據(jù)buffer,其中buf[0]為命令字節(jié)
len 發(fā)送或接收數(shù)據(jù)總長度
返回值:0成功,1錯誤
5.1 主機與DX8加密芯片直接連接
5.1.1 直接SPI接口實現(xiàn)
SPI驅(qū)動:
u8_x spi_transfer(u8_x *tx,u8_x *rx ,u16_x len);
返回值:0成功,1錯誤
轉(zhuǎn)換成接口回調(diào)函數(shù):
u8_x dxif_transfer(u8_x *buf, u16_x len)
{
return spi_transfer(buf, buf, len);
}
SPI總線數(shù)據(jù)示意圖:
5.1.2 直接I2C接口實現(xiàn)
I2C驅(qū)動:
u8_x i2c_read(u8_x slave_addr, u8_x *read_buf, u16_x len);
返回值:0成功,1錯誤 (slave_addr低7bit有效)
u8_x i2c_write(u8_x slave_addr, u8_x *write_buf, u16_x len);
返回值:0成功,1錯誤 (slave_addr低7bit有效)
轉(zhuǎn)換成接口回調(diào)函數(shù):
u8_x dxif_transfer(u8_x *buf, u16_x len)
{
if(buf[0]&0x01 == 0) // I2C寫
return i2c_write(buf[0]>>1, buf+1, len-1);
else // I2C讀
return i2c_read(buf[0]>>1, buf+1, len-1);
}
I2C總線數(shù)據(jù)示意圖:
5.2 主機通過轉(zhuǎn)接口或網(wǎng)絡(luò)與DX8芯片連接
這種方式時u8_x dxif_transfer(u8_x *buf, u16_x len)需要在主機端與設(shè)備端通過協(xié)議實現(xiàn)對buf數(shù)據(jù)的傳輸。
此種模式我公司已經(jīng)開發(fā)出USB轉(zhuǎn)接口、UART轉(zhuǎn)接口、藍牙轉(zhuǎn)接口、wifi轉(zhuǎn)接口等模塊,相關(guān)源碼可以跟公司簽署保密協(xié)議后進行索取。
5.3 接口回調(diào)函數(shù)技術(shù)支持
如果您使用的是Android/Linux/Windows CE操作系統(tǒng),操作系統(tǒng)一般集成了標準的I2C和SPI總線驅(qū)動,DX8_API庫中集成了設(shè)備驅(qū)動層,無需進行接口回調(diào)函數(shù)實現(xiàn)和底層硬件程序開發(fā)。
如果沒有使用操作系統(tǒng),則需要按照上面的方式實現(xiàn)接口回調(diào)函數(shù)即可,我們會提供通用CPU類型接口回調(diào)函數(shù)的實現(xiàn)例程,只需做很少修改即可實現(xiàn)。
總之,如果您不是特殊的硬件環(huán)境,我們承諾Design In時間不超過24小時。
待續(xù)......
【返回列表】相關(guān)新聞
- DX8加密芯片應(yīng)用開發(fā)手冊(六)2017-09-05
- DX8加密芯片應(yīng)用開發(fā)手冊(五)2017-09-03
- DX8加密芯片應(yīng)用開發(fā)手冊(四)2017-09-01
- DX8加密芯片應(yīng)用開發(fā)手冊(三)2017-08-31
- DX8加密芯片應(yīng)用開發(fā)手冊(一)2017-08-29