龙芯1B开发板上实现温湿度传感器dht11的驱动

上传人:无*** 文档编号:44030843 上传时间:2021-12-05 格式:DOC 页数:43 大小:2.16MB
收藏 版权申诉 举报 下载
龙芯1B开发板上实现温湿度传感器dht11的驱动_第1页
第1页 / 共43页
龙芯1B开发板上实现温湿度传感器dht11的驱动_第2页
第2页 / 共43页
龙芯1B开发板上实现温湿度传感器dht11的驱动_第3页
第3页 / 共43页
资源描述:

《龙芯1B开发板上实现温湿度传感器dht11的驱动》由会员分享,可在线阅读,更多相关《龙芯1B开发板上实现温湿度传感器dht11的驱动(43页珍藏版)》请在装配图网上搜索。

1、1. 简介32. 硬件设计42.1. DHT11手册中的典型电路42.2. 龙芯1B开发板电路分析52.3. 实物图73. 软件设计83.1. DHT11通信协议分析83.2. 主要思路93.3. 关键函数赏析104. 运行结果124.1. 采用中断方式读DHT11124.1.1. 采集温湿度成功124.1.2. 采集温湿度失败之校验不过144.1.3. 采集温湿度失败之不符合协议164.1.4. 成功失败次数统计分析174.1.5. 加载模块后第一次采集失败194.2. 采用udelay延时方式读DHT11215. 经验245.1. 读GPIO引脚245.2. 与DHT11通信过程中不要执行

2、printk等耗时操作246. 源码清单246.1. 驱动源码246.1.1. ls1b_dht11_driver.c246.1.2. Makefile416.2. 测试程序源码426.2.1. ls1b_dht11_app.c427. 参考文档43版本更新日期更新内容V1.02014.4.9创建V1.12014.4.28增加了详细的软硬件说明1. 简介这里使用的DHT11为入门级的温湿度传感器,如果需要精度更高一点的可以选择AM2302、AM2303等,也是单总线的实现方式相似。也有I2C接口的,比如AM2321。首先,到广州奥松电子官方网站下载传感器手册和相关示例代码等。下载手册的地方为“

3、产品展示”->“数字输出型”然后选择dht11,就进入如下界面,单击“产品手册”旁边的“点击下载”按钮,进行下载。还可以在“下载中心”下载应用例程,如下2. 硬件设计2.1. DHT11手册中的典型电路DHT11的手册中已经给出了典型电路图,如下所示图中说了:信号线小于20米时需要加5.1K上拉电阻;可以采用5V或者3.3V供电。2.2. 龙芯1B开发板电路分析从DHT11手册中可以知道:只需要电源、地、一个信号线和一个5.1K上拉电阻就可以与龙芯1B开发板通信。龙芯1B开发板把3.3V、5V和GND都引出来了。具体如下信号引脚从开发板上4个LED灯中选一个。其中LED7即CAN1_RX

4、被蜂鸣器占用,这里选择LED8所在引脚,即CAN1_TX,对应龙芯1B的GPIO41。2.3. 实物图我这里采用的是3.3V供电,同时也使用了一个5.1K的上拉电阻。3. 软件设计3.1. DHT11通信协议分析其实DHT11手册中讲得很清楚,这里简单提一下要点。整个通信过程如下图首先是主机(龙芯1B开发板)发送开始信号,然后就一直读,直到读完所有数据。开始信号为至少18ms的低电平和20到40us的高电平组成,如下图所示同时DHT11也回应一个起始信号,然后就是40bit的数据。每bit数据都是以50us的低电平开始,然后根据后面高电平的持续时间来判断为0还是1。如下图所示3.2. 主要思路

5、通过对DHT11单总线协议分析,决定先将DHT11发送的40bit数据的高低电平持续时间计算出来,然后再根据DHT11手册中的说明,将高低电平持续时间转换为二进制的0和1,最后得到温湿度值。计算DHT11发出的高低电平持续时间的方法有两种:l 通过不断读取GPIO引脚的值,发现发生改变,则记录当前系统时间l 通过中断方式,当发生中断时记录当前的系统时间后来发现通过不断读GPIO引脚值得过程中,有几次电平变化都没有被识别到,很明显是驱动有被“暂停”了,即被schedule了。因为DHT11发送的40bit数据约4ms,相对linux来说太长了,不允许一直被占用。所以最后选用中断方式。3.3. 关

6、键函数赏析首先通过函数ls1b_dht11_gpio_output_level()发送开始信号,然后马上把GPIO引脚设为输入并使能中断,然后在中断发生时记录当前系统时间,同时启动(或重启)定时器用于判断是否通信完成。如果超过指定时间没有发生中断,则表明通信完成,这时将记录下来的每个中断的发生时刻,转变为相邻两个中断的间隔时间,然后根据DHT11手册将间隔时间转换为对应的二进制0和1,最后得到温湿度值。发生起始信号的函数为ls1b_dht11_communication_start(),如下中断处理函数为ls1b_dht11_irq_handler(),如下中断下半部如下定时器超时处理函数如下

7、驱动的read接口如下关键寒暑浏览完毕。4. 运行结果4.1. 采用中断方式读DHT114.1.1. 采集温湿度成功Algorithmics/MIPS FPU Emulator v1.5#mount all.#Starting mdev.Processing /etc/profile.Done!LOONSONLoongson-gz:/#echo 8 > /proc/sys/kernel/printkLOONSONLoongson-gz:/#cd test/LOONSONLoongson-gz:/test#lsls1b_dht11_app ls1b_dht11_driver.koLOONS

8、ONLoongson-gz:/test#insmod ls1b_dht11_driver.ko ls1b_dht11_init: ls1b_dht11 device installed with major 253LOONSONLoongson-gz:/test#mknod /dev/dht11 c 253 0LOONSONLoongson-gz:/test#./ls1b_dht11_app 首先打开调试开关“echo 8 > /proc/sys/kernel/printk”,然后插入模块“insmod ls1b_dht11_driver.ko”,根据打印的主设备号创建设备节点“mkno

9、d /dev/dht11 c 253 0”,最后运行应用程序“./ls1b_dht11_app”。-dht11 high and low level info begin-timeval=625926197s,789833us interval= 0 binary=timeval=625926197s,790014us interval=181 binary=Etimeval=625926197s,790083us interval= 69 binary=0timeval=625926197s,790153us interval= 70 binary=0timeval=625926197s,7

10、90274us interval=121 binary=1timeval=625926197s,790353us interval= 79 binary=0timeval=625926197s,790477us interval=124 binary=1timeval=625926197s,790600us interval=123 binary=1timeval=625926197s,790679us interval= 79 binary=0timeval=625926197s,790755us interval= 76 binary=0timeval=625926197s,790835u

11、s interval= 80 binary=0timeval=625926197s,790911us interval= 76 binary=0timeval=625926197s,790988us interval= 77 binary=0timeval=625926197s,791065us interval= 77 binary=0timeval=625926197s,791143us interval= 78 binary=0timeval=625926197s,791222us interval= 79 binary=0timeval=625926197s,791300us inte

12、rval= 78 binary=0timeval=625926197s,791377us interval= 77 binary=0timeval=625926197s,791454us interval= 77 binary=0timeval=625926197s,791532us interval= 78 binary=0timeval=625926197s,791611us interval= 79 binary=0timeval=625926197s,791733us interval=122 binary=1timeval=625926197s,791812us interval=

13、79 binary=0timeval=625926197s,791935us interval=123 binary=1timeval=625926197s,792059us interval=124 binary=1timeval=625926197s,792185us interval=126 binary=1timeval=625926197s,792261us interval= 76 binary=0timeval=625926197s,792340us interval= 79 binary=0timeval=625926197s,792416us interval= 76 bin

14、ary=0timeval=625926197s,792495us interval= 79 binary=0timeval=625926197s,792573us interval= 78 binary=0timeval=625926197s,792648us interval= 75 binary=0timeval=625926197s,792727us interval= 79 binary=0timeval=625926197s,792806us interval= 79 binary=0timeval=625926197s,792882us interval= 76 binary=0t

15、imeval=625926197s,793008us interval=126 binary=1timeval=625926197s,793085us interval= 77 binary=0timeval=625926197s,793161us interval= 76 binary=0timeval=625926197s,793240us interval= 79 binary=0timeval=625926197s,793317us interval= 77 binary=0timeval=625926197s,793441us interval=124 binary=1timeval

16、=625926197s,793563us interval=122 binary=1timeval=0s,0us interval=206437 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=E-dht11 high and low level info end-ls1b_dht11_irq_buff_calc_temp_humidity: result0=44ls1b_dht11_irq_buff_calc_temp_humidity: result1=0ls1b_dht11_irq_

17、buff_calc_temp_humidity: result2=23ls1b_dht11_irq_buff_calc_temp_humidity: result3=0ls1b_dht11_irq_buff_calc_temp_humidity: result4=67humidity= 44, temp= 23main: dht11 collect successhumidity=44, temp=23打印中有三列分别是timeval、interval和binary。其中timeval为每次中断发生时的系统时间,interval为相邻两次中断的时间间隔(单位us),binary为根据DHT11

18、手册中的协议将电平持续时间转换为对应的二进制数据0和1。第一个timeval是记录的第一次中断,之前没有中断,所以对应的interval为0,binary没有。第二个timeval是记录的第二次中断,即DHT11响应的开始信号产生的中断,该信号有80us低电平和80us高电平组成,所以对应的interval约160us。因为binary只是针对后面的数据的,所以这里为Error,简写E。后面的第三、四、五个中断分别为40bit数据的中断,其中数据0由50us低电平和26-28us高电平组成,即间隔为77us左右的表示数据0,;数据1由50us低电平和70us高电平组成,即间隔为120us左右的

19、表示数据1。最后得到5字节的数据。如这里的44,0,23,0,67,其中第一个值“44”表示湿度为44%,第三个值“23”表示温度为23摄氏度;第五个值“67”表示校验和为67。4.1.2. 采集温湿度失败之校验不过-dht11 high and low level info begin-timeval=625926222s,922134us interval= 0 binary=timeval=625926222s,922291us interval=157 binary=Etimeval=625926222s,922363us interval= 72 binary=0timeval=62

20、5926222s,922439us interval= 76 binary=0timeval=625926222s,922562us interval=123 binary=1timeval=625926222s,922638us interval= 76 binary=0timeval=625926222s,922762us interval=124 binary=1timeval=625926222s,922886us interval=124 binary=1timeval=625926222s,922965us interval= 79 binary=0timeval=62592622

21、2s,923042us interval= 77 binary=0timeval=625926222s,923121us interval= 79 binary=0timeval=625926222s,923198us interval= 77 binary=0timeval=625926222s,923276us interval= 78 binary=0timeval=625926222s,923351us interval= 75 binary=0timeval=625926222s,923432us interval= 81 binary=0timeval=625926222s,923

22、508us interval= 76 binary=0timeval=625926222s,923586us interval= 78 binary=0timeval=625926222s,923664us interval= 78 binary=0timeval=625926222s,923741us interval= 77 binary=0timeval=625926222s,923818us interval= 77 binary=0timeval=625926222s,923896us interval= 78 binary=0timeval=625926222s,924021us

23、interval=125 binary=1timeval=625926222s,924099us interval= 78 binary=0timeval=625926222s,924222us interval=123 binary=1timeval=625926222s,924347us interval=125 binary=1timeval=625926222s,924471us interval=124 binary=1timeval=625926222s,924549us interval= 78 binary=0timeval=625926222s,924627us interv

24、al= 78 binary=0timeval=625926222s,924703us interval= 76 binary=0timeval=625926222s,924782us interval= 79 binary=0timeval=625926222s,924857us interval= 75 binary=0timeval=625926222s,924935us interval= 78 binary=0timeval=625926222s,925012us interval= 77 binary=0timeval=625926222s,925093us interval= 81

25、 binary=0timeval=625926222s,925171us interval= 78 binary=0timeval=625926222s,925294us interval=123 binary=1timeval=625926222s,925372us interval= 78 binary=0timeval=625926222s,925448us interval= 76 binary=0timeval=625926222s,925527us interval= 79 binary=0timeval=625926222s,925639us interval=112 binar

26、y=1timeval=625926222s,925734us interval= 95 binary=0timeval=625926222s,925851us interval=117 binary=1timeval=0s,0us interval=74149 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=E-dht11 high and low level info end-ls1b_dht11_irq_buff_calc_temp_humidity: result0=44ls1b_d

27、ht11_irq_buff_calc_temp_humidity: result1=0ls1b_dht11_irq_buff_calc_temp_humidity: result2=23ls1b_dht11_irq_buff_calc_temp_humidity: result3=0ls1b_dht11_irq_buff_calc_temp_humidity: result4=69ls1b_dht11_irq_buff_calc_temp_humidity: check sum error.ls1b_dht11_irq_buff_analytical: calc temp humidity f

28、ail. ret=6main: dht11 collect fail. ret=-1这是校验不过的情况,正确的校验和应该是44+0+23+0然后取低8位=67,而不是这里的69。4.1.3. 采集温湿度失败之不符合协议-dht11 high and low level info begin-timeval=625926216s,649827us interval= 0 binary=timeval=625926216s,650001us interval=174 binary=Etimeval=625926216s,650070us interval= 69 binary=0timeval=6

29、25926216s,650146us interval= 76 binary=0timeval=625926216s,650271us interval=125 binary=1timeval=625926216s,650346us interval= 75 binary=0timeval=625926216s,650470us interval=124 binary=1timeval=625926216s,650593us interval=123 binary=1timeval=625926216s,650673us interval= 80 binary=0timeval=6259262

30、16s,650750us interval= 77 binary=0timeval=625926216s,650828us interval= 78 binary=0timeval=625926216s,650907us interval= 79 binary=0timeval=625926216s,650981us interval= 74 binary=0timeval=625926216s,651061us interval= 80 binary=0timeval=625926216s,651205us interval=144 binary=Etimeval=625926216s,65

31、1296us interval= 91 binary=0timeval=625926216s,651371us interval= 75 binary=0timeval=625926216s,651449us interval= 78 binary=0timeval=625926216s,651527us interval= 78 binary=0timeval=625926216s,651603us interval= 76 binary=0timeval=625926216s,651728us interval=125 binary=1timeval=625926216s,651806us

32、 interval= 78 binary=0timeval=625926216s,651929us interval=123 binary=1timeval=625926216s,652053us interval=124 binary=1timeval=625926216s,652177us interval=124 binary=1timeval=625926216s,652255us interval= 78 binary=0timeval=625926216s,652332us interval= 77 binary=0timeval=625926216s,652411us inter

33、val= 79 binary=0timeval=625926216s,652488us interval= 77 binary=0timeval=625926216s,652566us interval= 78 binary=0timeval=625926216s,652644us interval= 78 binary=0timeval=625926216s,652721us interval= 77 binary=0timeval=625926216s,652800us interval= 79 binary=0timeval=625926216s,652875us interval= 7

34、5 binary=0timeval=625926216s,653002us interval=127 binary=1timeval=625926216s,653079us interval= 77 binary=0timeval=625926216s,653156us interval= 77 binary=0timeval=625926216s,653233us interval= 77 binary=0timeval=625926216s,653311us interval= 78 binary=0timeval=625926216s,653434us interval=123 bina

35、ry=1timeval=625926216s,653558us interval=124 binary=1timeval=0s,0us interval=346442 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=E-dht11 high and low level info end-ls1b_dht11_irq_buff_calc_temp_humidity: result0=44ls1b_dht11_irq_buf

36、f_calc_temp_humidity: *binary=E, byte_index=1, bit_index=4ls1b_dht11_irq_buff_analytical: calc temp humidity fail. ret=-1main: dht11 collect fail. ret=-1打印信息已经提示了,第二字节的第二个bit的值不合法,其interval为144,超过了二进制数据1的最大电平持续时间(140us)。4.1.4. 成功失败次数统计分析LOONSONLoongson-gz:/test#rmmod ls1b_dht11_driverls1b_dht11_exit

37、: ls1b_dht11 device uninstalled.LOONSONLoongson-gz:/test#insmod ls1b_dht11_driver.ko LOONSONLoongson-gz:/test#./ls1b_dht11_app main: dht11 collect fail. ret=-1main: dht11 collect fail. ret=-1main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 col

38、lect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect fail. ret=-1main: dht11 collect fail. ret=-1main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 coll

39、ect fail. ret=-1main: dht11 collect successhumidity=45, temp=23main: dht11 collect fail. ret=-1main: dht11 collect successhumidity=44, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 colle

40、ct fail. ret=-1main: dht11 collect fail. ret=-1main: dht11 collect fail. ret=-1main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=44, temp=23main: dht11 collect fail. ret=-1m

41、ain: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=45, temp=23main: dht11 collect successhumidity=44, temp=23main: dht11 collect successhumidity=44, temp=23main: dht11 collect fail. ret=-1main: dht11 collect fail. ret=-1ma

42、in: dht11 collect successhumidity=44, temp=23main: dht11 collect successhumidity=44, temp=23main: dht11 collect successhumidity=44, temp=23main: dht11 collect fail. ret=-1main: dht11 collect fail. ret=-1main: dht11 collect successhumidity=44, temp=23main: dht11 collect fail. ret=-1main: dht11 collec

43、t successhumidity=44, temp=23CLOONSONLoongson-gz:/test#从上面的打印初步估计成功率为50%左右,应用程序采集温湿度的间隔时间为5s,也就是说一分钟要采集12次,大概五六次成功,也就是一分钟成功采集一次还是有保障的。4.1.5. 加载模块后第一次采集失败LOONSONLoongson-gz:/test#rmmod ls1b_dht11_driverls1b_dht11_exit: ls1b_dht11 device uninstalled.LOONSONLoongson-gz:/test#insmod ls1b_dht11_driver.ko

44、 LOONSONLoongson-gz:/test#echo 8 > /proc/sys/kernel/printkLOONSONLoongson-gz:/test#./ls1b_dht11_app -dht11 high and low level info begin-timeval=625927467s,681933us interval= 0 binary=timeval=0s,0us interval=318067 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etime

45、val=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval=

46、 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0

47、s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 bi

48、nary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us

49、 interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=Etimeval=0s,0us interval= 0 binary=E-dht11 high and low level info end-ls1b_dht11_irq_buff_calc_temp_humidity: *binary=E, byte_index=0, bit_index=0ls1b_dht11_irq_buff_analytical: calc temp humidity fail. ret=-1

50、main: dht11 collect fail. ret=-1-dht11 high and low level info begin-timeval=625927467s,681933us interval= 0 binary=timeval=625927467s,864862us interval=182929 binary=Etimeval=625927467s,865028us interval=166 binary=Etimeval=625927467s,865099us interval= 71 binary=0timeval=625927467s,865179us interv

51、al= 80 binary=0timeval=625927467s,865401us interval=222 binary=Etimeval=625927467s,865505us interval=104 binary=1timeval=625927467s,865630us interval=125 binary=1timeval=625927467s,865704us interval= 74 binary=0timeval=625927467s,865785us interval= 81 binary=0timeval=625927467s,865861us interval= 76

52、 binary=0timeval=625927467s,865936us interval= 75 binary=0timeval=625927467s,866014us interval= 78 binary=0timeval=625927467s,866089us interval= 75 binary=0timeval=625927467s,866170us interval= 81 binary=0timeval=625927467s,866247us interval= 77 binary=0timeval=625927467s,866321us interval= 74 binar

53、y=0timeval=625927467s,866405us interval= 84 binary=0timeval=625927467s,866480us interval= 75 binary=0timeval=625927467s,866556us interval= 76 binary=0timeval=625927467s,866636us interval= 80 binary=0timeval=625927467s,866762us interval=126 binary=1timeval=625927467s,866836us interval= 74 binary=0tim

54、eval=625927467s,866966us interval=130 binary=1timeval=625927467s,867091us interval=125 binary=1timeval=625927467s,867219us interval=128 binary=1timeval=625927467s,867286us interval= 67 binary=0timeval=625927467s,867368us interval= 82 binary=0timeval=625927467s,867444us interval= 76 binary=0timeval=6

55、25927467s,867518us interval= 74 binary=0timeval=625927467s,867596us interval= 78 binary=0timeval=625927467s,867711us interval=115 binary=1timeval=625927467s,867752us interval= 41 binary=Etimeval=625927467s,867867us interval=115 binary=1timeval=625927467s,867907us interval= 40 binary=Etimeval=6259274

56、67s,868043us interval=136 binary=1timeval=625927467s,868120us interval= 77 binary=0timeval=625927467s,868192us interval= 72 binary=0timeval=625927467s,868271us interval= 79 binary=0timeval=625927467s,868350us interval= 79 binary=0timeval=625927467s,868474us interval=124 binary=1timeval=625927467s,868621us interval=147 binary=E-dht11 high and low level

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!