新闻中心

EEPW首页>测试测量>设计应用> 基于CAN总线的分布式车间温湿度检测系统

基于CAN总线的分布式车间温湿度检测系统

作者: 时间:2013-05-14 来源:网络 收藏

3 通信模块的设计
3.1 通信模块的硬件设计
通信模块具有4路通信通道,可分别连接4个计算机COM口,各通信通道相互独立,大体分为主控器(4个)、RS232/TTL电平转换电路(2个)、驱动器(4个)3部分组成,统一供+5 V电压:
(1)主控器选择Microchip公司生产的PIC18F25K80单片机,该单片机资源丰富,具有32 kB的程序存储器、3 648 Byte的数据存储器、1 024 Byte的数据EEPROM,并集成一个控制器。将二路拨码开关连接至单片机I/O口,用于设置通信模块在上的站号,设定站号范围为00~11。
(2)通信模块通过电平转换电路AX232芯片与计算机COM口进行数据交换,由于1个MAX232支持两组串口数据独立收发,因此可供2路通信通道同时使用。
(3)主控器PIC18F25K80自身集成一个CAN控制器,因此无需额外增加CAN控制器,仅需连接一个CAN驱动器PCA82C250即可与CAN进行通信。
PIC18F25K80自身集成的CAN控制器广泛支持CAN1.2、CAN 2.0A、CAN 2.0B Passive和CAN 2.0B Active多个版本的协议,支持DeviceNet数据字节过滤,支持标准帧数据和扩展帧数据,通信速率最高可达1 Mbit·s-1。

本文引用地址://m.amcfsurvey.com/article/192794.htm

d.JPG


PCA82C250作为目前应用最广泛的CAN驱动器,其最大通信速率可达1 Mbit·s-1,最多可支持110个节点,具有多重保护功能,安全可靠。PIC18F25K80的CAN收发引脚CANRX、CANTX与PCA82C250通过2只光耦6N137连接,PCA82C250直接接入CAN
3.2 通信模块的软件设计
通信模块在收到来自上位机的命令后,开始轮询与之相连接的检测模块。通信模块向与之相连的第一个检测模块发出读数据命令,待被询检测模块返回数据后再向下一个检测模块发出读数据命令,依此类推。如果被询检测模块在1 000ms内没有返回数据,则重新发送读数据命令,重复3次后如果被询检测模块依然没有返回数据,则检测模块便茸动将读数据缓冲数组内相应单元全部置FF,并将相应标志位置1,在下次轮询时,自动跳过此检测模块,待检修人员排除故障后,再通过监视计算机手动发出清除标志位命令或者将通信模块断电复位,即可恢复通信模块与所有检测模块的通信。最后所有检测模块读取完毕,通信模块自动将数据上传至上位监视计算机。程序流程图如图5所示。

e.JPG


通信模块向检测模块发出的读数据命令由2 Byte组成:第1 Byte是模块通道的CAN站号,第2 Byte是被询检测模块的CAN站号。由于检测模块向被询模块发出的命令仅有读数据命令一条,因此无需添加命令代码字节。

f.JPG


在CAN 2.0B规范中,数据帧有两种帧格式:标准帧数据格式和扩展帧数据格式,两者的区别在于前者具有11位标识符而后者具有29位标识符,如图6所示,标准帧格式仲裁段标识符仅有11位,而扩展帧格式仲裁段标识符比标准帧格式仲裁段标识符多出18个标识符,即29个标识符。CAN控箭器会根据用户对寄存器的设定值按帧格式自动生成输出脉冲序列。对于开发人员而言,前者仅需要配置2 Byte的TX识别码,而后者需要配置4 Byte的TX识别码,用于描述该帧数据在总线上的“数据身份”。鉴于通信与检测模块之间的通信关系比较简单,这里选用标准帧数据格式,2 Byte的TX识别码分别为数据源和数据目标地址,即对于通信模块而言,第1 Byte定义为通信模块某通道的站号,第2 Byte定义为某时刻该通信通道所访问的检测模块站号。

pid控制相关文章:pid控制原理


土壤湿度传感器相关文章:土壤湿度传感器原理


评论


相关推荐

技术专区

关闭