新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > RS-232转CAN通信适配卡设计

RS-232转CAN通信适配卡设计

作者:时间:2011-12-04来源:网络收藏
1.3 A/D转换模块

本文引用地址:http://www.eepw.com.cn/article/172386.htm

  PIC16F877A单片机自带有8路模拟通道,转换精度为10位。本卡选择RA0为模拟通道。板卡将A/D转换后的数据通过总线上传给上位机。

  1.4 数据流

  -的数据流图见图4。

  2 系统软件

  软件分为两大块:板卡底层软件和PC机上串口操作软件设计。板卡底层软件设计主要是对PIC16F877A编程,用于把从PC机通过串口输人给单片机的数据按照协议帧结构进行打包处理,并操作CAN控制器把数据发送到CAN总线;把从CAN总线上输入的数据转换成串行数据输出给PC机:PC机上串口操作软件设计主要是对串口的操作和通过串口收发数据。

  2.1单片机编程

  开发工具使用的是MPLAB集成开发环境(IDE),它是综合的编辑器、项目管理器和设计平台,适用于使用Microchip的PICmicro系列单片机进行嵌入式设计的应用开发;编程语言用的是C语言,将HITECH 公司的PICC编译器直接挂接在MPLAB-IDE集成开发平台下,实现一体化的编译连接和原代码调试。

  CAN控制器SJA1000T片内有模式寄存器MOD、命令寄存器CMR、状态寄存器SR、中断寄存器IR、中断使能寄存器IER、接收缓冲器RXB、发送缓冲器TXB、仲裁丢失捕捉寄存器ALC、错误代码捕捉寄存器ECC、错误报警限额寄存器EWLR、错误计数寄存器ERR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线时序寄存器BTR、输出控制寄存器OCR和时钟分频寄存器CDR等,单片机就是通过读写这些寄存器来实现对SJA1000T的控制,从而实现CAN报文的接收和发送。文后给出CAN控制器SJA1000T初始化和接收子程序的流程图。下面给出CAN初始化程序,其中WRCAN是自定义的一段对SJAIO00T写数据的子程序。

  2.2 串口操作程序设计

  在各种开发工具中间,VC由于功能强大和灵活,所以本实验系统使用VC作为开发工具。串口通讯目前流行的方法主要有3种:一是利用Microsoft提供的CMSCOMM控件进行通讯,通过插入ActiveX控件的方式实现;二是利用WIN API函数进行编程,这种编程的难度较高,要掌握较多的API函数;三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。本程序采用WINAPI函数进行串口的开发,程序在PC机上用来收发串口数据运行正确稳定。



关键词: 设计 适配 通信 CAN RS-232

评论


相关推荐

技术专区

关闭