防雾霾纱窗

1、灰尘传感器,利用的是光敏原理来工作。

2、依靠输出脉冲的高度来判断颗粒浓度。

3、430有一个引脚是脉冲的输出脚,为传感器提供输入信号。

4、还有一个引脚为430内部ADC的五号模拟输入脚

5、模块的输入电压为5V

6、出入信号周期为10ms

7、430带动传感器工作一次时间大概是1.5s,工作期间不断提供输入脉冲,大概到1s左右,此时传感器的工作已经稳定,因此可以开始采样了,连续采样4次,然后将数据取平均值。

8、输入信号由定时器A产生,P1.2输出(脉冲输入引脚,为传感器提供输入信号,PWM波形输出口),ADC采样时序的控制由定时器B控制,使用片内12位ADC进行采样,采样电压时系统电压3.2V,采样后直接转换成模拟信号的表达形式,最后输出的是电压值,然后电压值可以通过手册里给的公式转换到PM2.5的值。

 

1、I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。每个接到I2C总线上的器件都有唯一的地址。主机与其他器件的数据传输可以是有主机发送数据到其他器件,这时主机为发送器。由总线上接收数据的器件则为接收器

2、数据位的有效性规定:I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

3、起始和终止的时序图表示

4、有好几种数据传送的格式

5、总线的寻址:采用7位的寻址字节;主机发送地址时:总线上的每个从机都将这七位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/T位将自己确定为发送器或接收器;从机地址由固定部分和可编程部分组成。如一个从机的七位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,既可以有8个同样的器件接入到该I2C总线系统中。

6、主机可以采用不带I2C总线接口的单片机,如80C51、AT89C52等单片机,利用软件实现I2C总线的数据传送,即软件与硬件结合的信号模拟。典型信号模拟,为保证传送的可靠性,标准I2C总线的数据传送有严格的时序要求。I2C总线的其实信号、终止信号、发送0及发送1的模拟时序;起始信号和终止信号分别由两个函数实现的。

 

 

1、SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。

2、SPI接口是全双工三线同步串行外围接口,采用主从模式架构,时钟由主机控制

3、接口定义:SPI接口共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线

(1)MOSI主出从入

(2)MISO:主入从出

(3)SCLK:时钟信号,由主器件产生

(4)从器件使能信号,由主器件控制

(5)优点:支持全双工操作、操作简单。缺点:只支持单个主机。

串行端口
串行端口是异步的(不传输时钟相关数据),两个设备在使用串口通信时,必须先约定一个数据传输速率,并且这两个设备各自的时钟频率必须与这个速率保持相近,某一方的时钟频率相差很大都会导致数据传输混乱。 
异步串行端口在每个数据帧中都要插入至少一个起始位和一个终止位,意味着每传输8bits的数据实际要花费10bits的传输时间,从而降低了数据传输速率。 
另一个问题是异步串行端口的设计就是针对两个设备之间通信的,那么如果有多个设备连接到一个串口上,就必须解决信号碰撞的问题(bus contention),通常要通过额外硬件来完成。 
最后就是数据传输速率,异步串行通信并没有一个理论上的速率限制,大部分UART设备只支持一些特定的波特率,最高通常在230400bps左右。

SPI
SPI最明显的缺点就是引脚数量,使用SPI总线相连的一个master和一个slave需要四根线(MISO/MOSI/SCK/CS),每增加一个slave,就需要在master上增加一个CS引脚。当一个master接多个slaves的时候,疯狂增长的引脚连接是难以忍受的,并且对紧凑的PCB layout是一个挑战。 
SPI总线上只允许有一个master,但可以有任意多个slaves(只受限于总线上设备的驱动程序的能力,以及设备上最多能有多少个CS引脚)。 
SPI可以很好的用于高速率全双工的连接,对一些设备可支持高达10MHz(10Mbps)的传输速率,因此SPI吞吐量大得多。SPI两端的设备通常是一个简单的移位寄存器,让软件的实现很简单。

I2C
I2C最少只需要两根线,和异步串口类似,但可以支持多个slave设备。和SPI不同的是,I2C可以支持mul-master系统,允许有多个master并且每个master都可以与所有的slaves通信(master之间不可通过I2C通信,并且每个master只能轮流使用I2C总线)。master是指启动数据传输的设备并在总线上生成时钟信号以驱动该传输,而被寻址的设备都作为slaves。 

 

  问:在 ACK  模式下,我自己编写的程序容易死机,必须重新断电后才能继续发送或者接收?并且 IRQ  一直不为低电平
答:在 ACK 模式下发送失败和接收失败要清空发送缓冲区和接收缓冲区,否则不能进行下次发射或接收,有专门的清除指令。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值