999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高速公路視頻監(jiān)控下RX-8025實(shí)時(shí)時(shí)鐘系統(tǒng)研究與設(shè)計(jì)

2015-01-28 08:15:02廖建尚曹成濤楊志偉
電子設(shè)計(jì)工程 2015年19期
關(guān)鍵詞:設(shè)備設(shè)計(jì)

廖建尚,曹成濤,楊志偉

(廣東交通職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院,廣東 廣州 510650)

隨著社會(huì)的發(fā)展,汽車不斷增多,高速公路上違章的車輛也逐漸增多,為了構(gòu)建一個(gè)平安交通和智能交通,視頻監(jiān)控系統(tǒng)在交通行業(yè)的應(yīng)用也越來越多,為了能對高速公路進(jìn)行監(jiān)控,高清視頻監(jiān)控也應(yīng)用越來越廣泛[1]。

文中將研究詳細(xì)分析RX8025和I2C的工作原理和通信協(xié)議和Linux的I2C總線驅(qū)動(dòng)程序,設(shè)計(jì)一個(gè)應(yīng)用在高速公路視頻監(jiān)控的基于I2C的RX-8025實(shí)時(shí)時(shí)鐘控制系統(tǒng),為高速公路的高清視頻監(jiān)控提供一個(gè)設(shè)計(jì)方案。

1 高速公路視頻監(jiān)控系統(tǒng)以及實(shí)時(shí)時(shí)鐘系統(tǒng)設(shè)計(jì)

本研究課題的高速公路高清視頻監(jiān)控系統(tǒng)采用TI公司的TMS320DM368,DM368是一款面向多媒體技術(shù)應(yīng)用的高性能芯片,功能強(qiáng)大,集成了ARM9、硬件編碼協(xié)處理引擎(HDVICP)、圖像處理子系統(tǒng)(VPSS)。DM368最高可以支持H.264編碼 1080P格式 30幀/s的速度。該處理器有I2C總線等外圍接口等,其中ARM9運(yùn)行性能穩(wěn)定的Linux嵌入式操作系統(tǒng)[2]。

視頻監(jiān)控系統(tǒng)中實(shí)時(shí)時(shí)鐘控制的設(shè)計(jì)采用DM368的I2C總線接口,設(shè)計(jì)基于ARM9的I2C云臺(tái)電機(jī),完成驅(qū)動(dòng)程序設(shè)計(jì)和應(yīng)用程序設(shè)計(jì),以及應(yīng)用程序控制RX-8025實(shí)時(shí)時(shí)鐘,應(yīng)用于視頻監(jiān)控系統(tǒng)中,達(dá)到全方位的高速公路視頻監(jiān)控。

2 RX-8025實(shí)時(shí)時(shí)鐘硬件構(gòu)成和通信協(xié)議

2.1 RX-8025簡介

RX-8025是一種具有高精度,包括32.768 kHz晶振時(shí)鐘I2C總線接口的實(shí)時(shí)時(shí)鐘芯片,該芯片提供的功能有6個(gè)中斷,2個(gè)系統(tǒng)鬧鐘功能、電源電壓監(jiān)測和數(shù)字時(shí)鐘精度調(diào)節(jié)功能來滿足不同精度要求,其中計(jì)時(shí)功能可以進(jìn)行至陽歷二位數(shù)和年、月、日、時(shí)、分、秒為止的數(shù)據(jù)設(shè)定,包括計(jì)時(shí)和讀取,當(dāng)陽歷的下二位數(shù)為4的倍數(shù)時(shí),可自動(dòng)識(shí)別至2099年。因此RX-8025適用于高清視頻監(jiān)控的嵌入式系統(tǒng),用于計(jì)時(shí)同步[5]。

2.2 RX-8025管腳功能

SCL:I2C通信用的串行時(shí)鐘輸入,與時(shí)鐘信號(hào)同步,SDA SDA:與I2C通信串行時(shí)鐘同步,進(jìn)行地址、數(shù)據(jù)、應(yīng)答等的輸入輸出。

圖1 RX-8025內(nèi)部時(shí)鐘信號(hào)圖Fig.1 Internal clock signal of RX-8025

FOUT:由FOE控制的32.768 kHZ時(shí)鐘輸出端;

FOE:控制FOUT輸出時(shí)鐘信號(hào)的輸入腳內(nèi)置,當(dāng)它接高電平時(shí),F(xiàn)OUT腳輸出時(shí)鐘信號(hào);

RX-8025使用I2C和外圍芯片進(jìn)行數(shù)據(jù)通信,因此,本系統(tǒng)中ARM9和RX-8025通信需要通過I2C總線,因此需要完成Linux在ARM9的I2C驅(qū)動(dòng)。

2.3 I2C硬件構(gòu)成和通信協(xié)議

I2C總線是由雙向數(shù)據(jù)線和時(shí)鐘線構(gòu)成的二線制串行總線,總線采用主從雙向通信,即總線上在某一時(shí)刻只有一個(gè)主設(shè)備總線上的其他設(shè)備都作為從設(shè)備,任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主設(shè)備,但是在同一時(shí)間內(nèi)只能有一個(gè)設(shè)備作為主設(shè)備,通常為處理器,其他器件作為從設(shè)備與主設(shè)備進(jìn)行通信,采用唯一的I2C地址識(shí)別[5]。

圖2 I2c工作時(shí)序Fig.2 Working sequence of I2c

如圖2所示I2C的工作時(shí)序圖所示,I2C總線在傳送數(shù)據(jù)過程中使用了3種信號(hào)。1)開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,表示將要開始傳送數(shù)據(jù);2)應(yīng)答信號(hào):從設(shè)備在接收到1個(gè)字節(jié)數(shù)據(jù)后向主設(shè)備發(fā)出一個(gè)低電平脈沖應(yīng)答信號(hào),表示已收到數(shù)據(jù),主設(shè)備根據(jù)從設(shè)備的應(yīng)答信號(hào)做出是否繼續(xù)傳輸數(shù)據(jù)的操作;3)結(jié)束信號(hào):為低電平時(shí)由低電平向高電平跳變,表示數(shù)據(jù)傳送結(jié)束[4-5]。

總線具體的通信工作原理:主設(shè)備首先發(fā)出開始信號(hào),接著發(fā)送的1個(gè)字節(jié)的數(shù)據(jù),其由高7位地址碼和最低1位方向位組成。系統(tǒng)中所有從設(shè)備將自己的地址與主設(shè)備發(fā)送到總線上的地址進(jìn)行比較,如果從設(shè)備地址與總線上的地址相同,該設(shè)備就是與主設(shè)備進(jìn)行數(shù)據(jù)傳輸?shù)脑O(shè)備。接著進(jìn)行數(shù)據(jù)傳輸,根據(jù)方向位,主設(shè)備接收從設(shè)備數(shù)據(jù)或發(fā)送數(shù)據(jù)到從設(shè)備。當(dāng)數(shù)據(jù)傳送完成后,主設(shè)備發(fā)出一個(gè)停止信號(hào),釋放I2C總線,然后所有從設(shè)備等待下一個(gè)開始信號(hào)的到來[4-5]。

3 I2C的Linux和ARM驅(qū)動(dòng)設(shè)計(jì)

3.1 Linux2.6.32的I2C驅(qū)動(dòng)分析

I2C由主設(shè)備和從設(shè)備構(gòu)成,通信上通過識(shí)別I2C地址進(jìn)行通信,即可以存在多個(gè)i2c adapter適配器和多個(gè)外設(shè)i2c device,Linux的I2C驅(qū)動(dòng)采用分層設(shè)計(jì)實(shí)現(xiàn)的思想,層與層之間不存在耦合,增加adapter和增加device不會(huì)影響其他驅(qū)動(dòng),具體分層如下。

第一層:提供i2c adapter的硬件驅(qū)動(dòng),探測、初始化i2c adapter(如申請I2C地址和中斷號(hào)),驅(qū)動(dòng)處理器控制的i2c adapter在硬件上產(chǎn)生信號(hào)(開始、停止、應(yīng)答)以及處理i2c中斷,涉及圖2中的硬件實(shí)現(xiàn)層;

第二層:提供i2c adapter的algorithm,用具體適配器的函數(shù)來填充i2c_algorithm的master_xfer函數(shù)指針,并把賦值后的i2c_algorithm,再賦值給i2c_adapter的成員指針,主要涉及圖2中訪問抽象層、i2c核心層;

第三層:實(shí)現(xiàn)i2c設(shè)備驅(qū)動(dòng)中的i2c_driver接口,用具體的 i2c device 設(shè)備的 i2c_add_driver()、i2c_del_driver()方法賦值給i2c_driver的成員函數(shù)指針,采用Probe探尋方式實(shí)現(xiàn)設(shè)備device與總線的掛接,涉及圖2中的driver驅(qū)動(dòng)層,此層是本文實(shí)現(xiàn)的驅(qū)動(dòng)部分;

第四層:實(shí)現(xiàn)i2c設(shè)備所對應(yīng)的具體device的驅(qū)動(dòng),i2c_driver只是實(shí)現(xiàn)設(shè)備與總線的掛接,掛接在總線上的設(shè)備千差萬別的,所以要實(shí)現(xiàn)具體設(shè)備device的write()、read()、ioctl()等方法,賦值給file_operations,然后注冊字符設(shè)備,涉及圖2中的driver驅(qū)動(dòng)層,此層是本文實(shí)現(xiàn)的驅(qū)動(dòng)部分。

第一層和第二層又叫i2c總線驅(qū)動(dòng)(bus driver),第三層和第四層屬于i2c設(shè)備驅(qū)動(dòng)(device driver)。在Linux驅(qū)動(dòng)架構(gòu)中,不需要再開發(fā)總線驅(qū)動(dòng),因?yàn)長inux內(nèi)核幾乎集成所有總線驅(qū)動(dòng),驅(qū)動(dòng)設(shè)計(jì)主要是實(shí)現(xiàn)第三層和第四層的設(shè)備驅(qū)動(dòng)。

圖3 I2c驅(qū)動(dòng)架構(gòu)圖Fig.3 Driven architecture of I2c

3.2 Linux系統(tǒng)中i2c驅(qū)動(dòng)中結(jié)構(gòu)體分析

Linux中的I2C驅(qū)動(dòng)分層設(shè)計(jì)涉及了多個(gè)數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)在I2C分層設(shè)計(jì)中起了非常重要的作用,數(shù)據(jù)結(jié)構(gòu)有i2c_driver、i2c_client、i2c_adapter,下面具體分析這三個(gè)數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系。

1)i2c_driver與i2c_client

i2c_driver對應(yīng)Linux的一種驅(qū)動(dòng)方法,它不對應(yīng)于任何的物理實(shí)體。

i2c_client對應(yīng)于真實(shí)的物理設(shè)備,每個(gè)I2C設(shè)備都需要一個(gè) i2c_client來描述,i2c_client代表一個(gè)掛載到I2C總線上的I2C從設(shè)備,該設(shè)備所需要的數(shù)據(jù)結(jié)構(gòu),包括該I2C從設(shè)備所依附的I2C主設(shè)備i2c_adapter,I2C從設(shè)備的驅(qū)動(dòng)程序i2c_driver,作為i2c從設(shè)備所通用的成員變量;

struct i2c_client{

unsigned shortaddr; /* chip address -NOTE:7bit */

struct i2c_adapter*adapter;/*該i2c從設(shè)備所依附的i2c主設(shè)備*/

struct i2c_driver*driver;/*該i2c從設(shè)備的驅(qū)動(dòng)程序*/

intusage_count; /*目前掛接I2C從設(shè)備的數(shù)量 */

struct device dev; /*該i2c從設(shè)備驅(qū)動(dòng)所特有的數(shù)據(jù)*/

struct list_head list;/*鏈表*/

char name[I2C_NAME_SIZE];/**/

}

i2c_driver與 i2c_client發(fā)生關(guān)聯(lián)的時(shí)刻在 i2c_driver的attach_adapter()函數(shù)被運(yùn)行時(shí),attach_adapter()會(huì)探測物理設(shè)備,當(dāng)確定一個(gè)I2C從設(shè)備存在時(shí),把該 client使用的i2c_client數(shù)據(jù)結(jié)構(gòu)的 adapter指針指向?qū)?yīng)的i2c_adapter。

2)i2c_adpater與i2c_client

i2c_adpater與 i2c_client的關(guān)系與 I2C硬件體系中適配器和設(shè)備的關(guān)系一致,即 i2c_client依附于 i2c_adpater,一個(gè)i2c_adpater上可以連接多個(gè) I2C設(shè)備,i2c_adpater中包括依附于它的i2c_client的鏈表。

3)結(jié)構(gòu)體i2c_msg解析

i2c_msg用于I2C驅(qū)動(dòng)第三層和第二層的數(shù)據(jù)交換,i2c_transfer通過調(diào)用master_xfer函數(shù)傳遞i2c_msg結(jié)構(gòu)體,結(jié)構(gòu)體包括成員變量有設(shè)備地址addr,消息長度len和消息數(shù)據(jù)buf以及讀寫標(biāo)志的宏定義,具體如下:

struct i2c_msg{

__u16 addr;/*設(shè)備地址*/

__u16 flags;/*標(biāo)志 */

__u16 len;?/*消息長度*/

__u8*buf;?/*消息數(shù)據(jù)*/

#define I2C_M_TEN 0x10 /*we have Aten bit chip address */

#define I2C_M_RD 0x01

#define I2C_M_NOSTART 0x4000

#define I2C_M_REV_DIR_ADDR 0x2000

#define I2C_M_IGNORE_NAK 0x1000

#define I2C_M_NO_RD_ACK 0x0800};

3.3 RX8025實(shí)時(shí)時(shí)鐘的I2C驅(qū)動(dòng)設(shè)計(jì)

根據(jù)Linux2.6.32的驅(qū)動(dòng)分層設(shè)計(jì)[3,5,7],驅(qū)動(dòng)的第一層和第二層在Linux-2.6.32中以及集成了成熟驅(qū)動(dòng),文中重點(diǎn)講述第三層和第四層驅(qū)動(dòng)程序的設(shè)計(jì)。

驅(qū)動(dòng)設(shè)計(jì)采用字符設(shè)備方式來實(shí)現(xiàn),RX8025_I2C_Init()和RX8025_I2C_Exit()實(shí)現(xiàn)驅(qū)動(dòng)的初始化以及退出,初始化最后調(diào)用cdev_add()實(shí)現(xiàn)字符設(shè)備的添加,添加過程中通過完善file_operations的結(jié)構(gòu)體,填充了以下4個(gè)結(jié)構(gòu)體變量。

Struct file_operations i2c_dev_ops={

.open=RX8025_Open,

.close=RX8025_Close,

.read=RX8025_Read,

.write=RX8025_Write

};

這4個(gè)用戶空間接口驅(qū)動(dòng)函數(shù),完成注冊后,用戶空間可以采用文件讀寫的方式來操作I2C設(shè)備了,RX8025_Open函數(shù)實(shí)現(xiàn)打開實(shí)時(shí)時(shí)鐘字符設(shè)備,RX8025_Close函數(shù)實(shí)現(xiàn)關(guān)閉實(shí)時(shí)時(shí)鐘字符設(shè)備,數(shù)據(jù)交換通過接口RX8025_Read和RX8025_Write來實(shí)現(xiàn),主要實(shí)現(xiàn)設(shè)備的數(shù)據(jù)讀取和數(shù)據(jù)寫入,從而完成用戶空間和驅(qū)動(dòng)程序以及硬件設(shè)備的數(shù)據(jù)交換,i2c_board_info結(jié)構(gòu)體中,“RX8025-i2c” 定義為 RX8025的I2C名字,0x32為RX8025的地址,該數(shù)據(jù)結(jié)構(gòu)的填充在Board-dm368-evm.c文件,Board-dm368-evm.c文件包含了大部分驅(qū)動(dòng)的數(shù)據(jù)信息,系統(tǒng)啟動(dòng)會(huì)自動(dòng)加載相關(guān)驅(qū)動(dòng)信息。一個(gè)i2c_client就代表著一個(gè)位于adapter適配器上,地址為client->addr,使用設(shè)備驅(qū)動(dòng)的一個(gè)i2c設(shè)備。

static struct i2c_board_info i2c_info[]={

{I2C_BOARD_INFO("RX8025-i2c",0x32),

},};

本設(shè)計(jì)主要完整時(shí)鐘數(shù)據(jù)的讀取,用于同步到系統(tǒng)中,因此重點(diǎn)實(shí)現(xiàn)RX8025_Read接口函數(shù),RX8025_Read利用i2c_transfer函數(shù)調(diào)用master_xfer實(shí)現(xiàn)時(shí)鐘數(shù)據(jù)的讀取,具體實(shí)現(xiàn)過程如圖4所示,其中i2c_probe和RX8025_Read實(shí)現(xiàn)部分代碼如下:

struct i2c_client*rx8025_client=NULL;

static int i2c_probe(struct i2c_client*client, const struct i2c_device_id*id){……

rx8025_client=client;……}

int I2C_read (struct file*file,unsigned char*buffer,unsigned char count){

client=( struct i2c_client*)file->private_data;for(i=0;i

msg->addr=((client->addr)>>1);

msg->flags=0;

msg->len =1;

msg->buf=data;

data[0] =reg[i];

err=i2c_transfer(client->adapter,msg,1);}//end of for

}

圖4 RX8025_Read驅(qū)動(dòng)的實(shí)現(xiàn)過程Fig.4 Driven implementation process of RX8025_read

4 RX8025實(shí)時(shí)時(shí)鐘I2C應(yīng)用程序設(shè)計(jì)

根據(jù)I2C驅(qū)動(dòng)程序設(shè)計(jì)[7],要正確調(diào)用驅(qū)動(dòng)程序,需要實(shí)現(xiàn)驅(qū)動(dòng)的用戶空間調(diào)用函數(shù),主要是實(shí)現(xiàn)open、read和write等函數(shù),因此在應(yīng)用層的接口函數(shù)中也需要實(shí)現(xiàn)此函數(shù)。

i2c_Init()函數(shù)實(shí)現(xiàn)open函數(shù),調(diào)用驅(qū)動(dòng)函數(shù)打開該設(shè)備驅(qū)動(dòng),定義一個(gè)數(shù)據(jù)結(jié)構(gòu)體為:

int Rx_8025(){

fd_rx8025=open(I2C_RX8025_NAME,O_RDWR);if(fd_rx8025<0) {

printf("open/dev/rx8025_i2c error!");

return-1;

}

return 0;

}

設(shè)備通過open函數(shù)正確打開后,就能通過讀寫函數(shù)進(jìn)行數(shù)據(jù)交換了,該結(jié)構(gòu)體主要用來實(shí)現(xiàn)用戶空間和內(nèi)核空間的調(diào)用的數(shù)據(jù)交換,下面通過read數(shù)據(jù)讀取函數(shù)說明具體的實(shí)現(xiàn)過程,其中buf用于保存讀取數(shù)據(jù),count用于讀取數(shù)據(jù)的字節(jié)數(shù)。

int RX8025_read(uint8_t*buf,uint8_t count){

unsigned char ret

ret=read(fd_rx8025,buf,count);if(status<0)

printf("RX8025 read error! ");

return reg;}

如圖5所示,可以通過人機(jī)交互設(shè)置實(shí)時(shí)時(shí)鐘或讀取實(shí)時(shí)時(shí)鐘、同步系統(tǒng)時(shí)鐘,調(diào)用setTime()和synTime()接口函數(shù)來調(diào)用write()和read()文件IO讀寫文件,最終調(diào)用write()和read()的字符驅(qū)動(dòng)函數(shù)實(shí)現(xiàn)對I2C驅(qū)動(dòng)的調(diào)用。

圖5 云臺(tái)電機(jī)控制應(yīng)用程序設(shè)計(jì)圖Fig.5 Application design of PTZmotor control

5 RX8025實(shí)時(shí)時(shí)鐘應(yīng)用程序設(shè)計(jì)

實(shí)時(shí)時(shí)鐘在本系統(tǒng)中有兩個(gè)功能,一是通過QT圖形界面軟件輸入時(shí)間信息來設(shè)置實(shí)時(shí)時(shí)鐘的時(shí)間,可以在界面年月日時(shí)分秒信息,通過調(diào)用應(yīng)用程序函數(shù)達(dá)到時(shí)間設(shè)置的目的,二是從而帶動(dòng)視頻監(jiān)控的攝像頭朝不同方位轉(zhuǎn)動(dòng)以及定位,如圖所示。根據(jù)協(xié)議,應(yīng)用程序設(shè)計(jì)主要實(shí)現(xiàn)以下操作:

1)設(shè)置當(dāng)前的時(shí)鐘信息,函數(shù)接口為setTime();

2)同步實(shí)時(shí)時(shí)鐘的時(shí)鐘信息到系統(tǒng),函數(shù)接口為synTime();

下面通過時(shí)鐘同步函數(shù)的接口函數(shù)synTime(),詳細(xì)RX8025實(shí)時(shí)時(shí)鐘應(yīng)用程序接口函數(shù)的實(shí)現(xiàn)過程,通過調(diào)用用戶空間和內(nèi)核空間的read()函數(shù)實(shí)現(xiàn)對驅(qū)動(dòng)的調(diào)用,最終通過I2C總線設(shè)置時(shí)鐘和讀取時(shí)鐘數(shù)據(jù)。

通過實(shí)現(xiàn)人機(jī)交互操作程序,實(shí)現(xiàn)設(shè)置當(dāng)前的時(shí)鐘信息和同步實(shí)時(shí)時(shí)鐘的時(shí)鐘信息到系統(tǒng),通過調(diào)用相應(yīng)的接口函數(shù),實(shí)現(xiàn)對I2C應(yīng)用程序的調(diào)用,最后通過read、write函數(shù)實(shí)現(xiàn)對RX-8025的控制,具體實(shí)現(xiàn)如圖5所示。

6 結(jié)束語

本系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了一款基于TMS320DM368的高清視頻監(jiān)控系統(tǒng)中的實(shí)時(shí)時(shí)鐘系統(tǒng)控制設(shè)計(jì),完成了實(shí)時(shí)時(shí)鐘RX8025的I2C驅(qū)動(dòng)程序的分析以及設(shè)計(jì),并且完成了i2c應(yīng)用程序的設(shè)計(jì)和實(shí)時(shí)時(shí)鐘RX8025控制應(yīng)用程序設(shè)計(jì),達(dá)到了應(yīng)用目的。

[1]張志.高速公路高清視頻監(jiān)控系統(tǒng)的構(gòu)建[J].中國交通信息化,2011(4):99-102.ZHANG Zhi.Construction of the highway high-definition video surveillance system[J].China ITSJoural,2011(4):99-102.

[2]Texas Instruments Incorporated.TMS320DM368 digitalmedia sys-tem-on-Chip(DMSoC).[EB/OL](2014-03)http://www.ti.com/lit/ds/sym link/tms320dm368.pdf.

[3]TMS320DM36x Digital Media System-on-Chip(DMSoC)Inter-Integrated Circuit(I2C)Module User's Guide[EB/OL].[2014-03].http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html.

[4]高非非.ARM-Linux中I2C總線驅(qū)動(dòng)開發(fā)[J].微型機(jī)與應(yīng)用,2012(5):57-58.GAO Fei-fei.Design of I2C bus driver based on ARM-Linux[J].Network and Comunication,2012(5):57-58.

[5]Philips Corp.The I2C-BUSSpecification Version 2.1[Z],2000.

[6]Real time clock module RX-8025SA/NB applicationmannual[M].EPSON Toyocom,2002.

[7]Jonahan Corbet.Linux device drivers[M].北京:中國電力出版社,2006.

猜你喜歡
設(shè)備設(shè)計(jì)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
瞞天過海——仿生設(shè)計(jì)萌到家
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
如何在設(shè)備采購中節(jié)省成本
主站蜘蛛池模板: 国产美女精品一区二区| 午夜福利网址| 视频二区国产精品职场同事| 亚洲精品成人片在线观看| 国产乱子伦无码精品小说| 国产精品亚洲天堂| 亚洲成A人V欧美综合天堂| 9啪在线视频| 亚洲AV无码久久天堂| 久久久久久久蜜桃| 成人在线亚洲| 欧美精品在线观看视频| 成人精品免费视频| 色哟哟色院91精品网站| 永久免费无码成人网站| 亚洲欧美精品日韩欧美| 久久a级片| 亚洲天堂区| 亚洲an第二区国产精品| 亚洲天堂精品在线| 亚瑟天堂久久一区二区影院| 国产高清在线精品一区二区三区 | 国产欧美日本在线观看| 日本久久网站| 欧美午夜性视频| 99热这里只有精品在线观看| 日韩中文无码av超清| 国产精品无码翘臀在线看纯欲| 国产精品真实对白精彩久久| 精品欧美视频| 日韩精品无码不卡无码| 国产精品第三页在线看| 国产一级二级在线观看| 亚洲无码高清视频在线观看| 91av国产在线| 在线观看精品自拍视频| 啊嗯不日本网站| 亚洲bt欧美bt精品| 国产91色| 夜色爽爽影院18禁妓女影院| 亚洲男人天堂久久| 青草视频网站在线观看| 一级毛片a女人刺激视频免费| 综合久久久久久久综合网| 黄片在线永久| 久久午夜夜伦鲁鲁片无码免费| 日本a级免费| 激情综合激情| 国内精品小视频福利网址| 天天躁夜夜躁狠狠躁图片| 香蕉伊思人视频| 老司机午夜精品网站在线观看| 亚洲第一天堂无码专区| 四虎成人在线视频| 97在线国产视频| 国产成人调教在线视频| 国产91小视频在线观看| 亚洲国产天堂久久综合| 99视频国产精品| 这里只有精品国产| 免费观看男人免费桶女人视频| 亚洲国产天堂久久综合| 中文成人在线| 国语少妇高潮| 亚洲欧洲美色一区二区三区| 九月婷婷亚洲综合在线| 国产精品19p| 中文字幕免费播放| 国产精品19p| 国产人成在线视频| 丝袜亚洲综合| 欧美日韩成人在线观看| 精品一区二区三区水蜜桃| 国产成年无码AⅤ片在线| 久久天天躁狠狠躁夜夜2020一| 天堂av综合网| 欧美一区二区精品久久久| 亚洲国产中文在线二区三区免| 四虎AV麻豆| 99热国产这里只有精品9九 | 二级毛片免费观看全程| 国产综合网站|