家电和消费电子:炬芯、建荣、中微、中颖、雅特力、芯圣、汇春、灵动、晟矽
物联网:芯海、乐鑫、贝特莱、兆易、云间
智能表计、IC卡及安全:国民、复旦、贝岭
计算机和网络通信:国芯、极海、东软、沁恒、华芯
工业控制:华大、万高、时代、航顺、赛元
汽车电子:赛腾、杰发、芯旺
我们从如下五个角度对每家公司进行高度概括性陈述和对比:主要产品、核心技术、关键应用、主要客户、竞争优势。虽然公司员工人数和研发人员比例、申请专利数量和财报等数据可以更为直观地对比,但因为大部分厂商都是非上市公司,我们获取的数据还不能全面而客观地反应这些公司的综合实力,因此我们在此没有列出这些量化指标。
MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。MCU需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,MCU发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。
MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。
数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。