发 帖  
原厂入驻New

基于PC与SPEC061A嵌入式芯片串口通讯的原理与实现

2008-10-6 13:43:33  3088
分享

[摘 要] 应用台湾凌阳公司生产的SPCE 系列嵌入式芯片,利用该芯片所具有的串口与PC 机的RS232 接口通讯,研究PC 与SPEC061A 嵌入式芯片串口通讯的原理与实现方式. 并采用该系统产生数字式的三角波、正弦波、方波、斜波等幅值可调的工业测试中常用的信号.

[关键词] 嵌入式芯片; 串口通信; 通信协议

    SPEC061A[1 ]是凌阳公司的产品,它以μ′nSPTM为内核,由于其内部采用总线结构,把各功能部件模块化地集成在一个芯片里,这样就有效地减少了各功能部件之间的连线,提高了可靠性和抗干扰能力.μ′nSPTM嵌入式芯片的通用串行通信接口为标准全双工的通用异步接收器/ 发送器URAT 模块.UART 的接收信号Rx 发送信号Tx 分别是μ′nSPTM的并行I/ O 口IOB7 和IOB10 共用,属于B 口的特殊功能.

1  μ′nS PTM的通信协议

    在异步通信时,数据的发送端Tx 和接收端Rx必须严格按照一定的格式进行发送和接收,否则将引起数据帧错误,不能进行通信.μ′nSPTM的数据格式如图1 所示. 通信时用启动位“0”表示数据的开始,然后从低位到高位逐位传送数据,再传送奇偶[2 ] .

2  系统的组成

2. 1  上位机PC机的串口通信原理及实现

    由于PC 机要于SPEC061A 进行串口通信,所 以其通信协议必须与μ′nSPTM的通信协议一致. 在Windows2000 下串口通信程序可以用两种方法实现:1) 利用Visual C + + 6. 0 提供的MSComm Ac2tiveX 控件;2) 使用操作系统提供的API 通信函数.microsoft 公司的Visual C + + 6. 0 功能强大,其基础类库(MFC) 封装了Win32 API 中的标准通信函数,可方便地支持串口通信. 使用ActiveX 控件使得程序实现非常简单, 结构清晰. 所以本文拟使用MSComm ActiveX控件进行PC 机的串口通信程序编写.首先应在当前的工程的Workspace 中插入MSComm 控件, 然后利用ClassWizard 定义CM2SComm 类对象,在对话框中添加控件,添加串口事件消息处理函数OnComm( ) . OnComm( ) 函数部分代码如下.

void CSCommTestDlg ∷OnComm()

  { ……

  if (m-ctrlComm. GetCommEvent () = = 2)

∥m-ctrlComm 为CMSComm 类对象,2 表示接收缓冲区内有字符

  {variant-inp = m-ctrlComm. Get Input () ; ∥读缓冲区

  safearray-inp = variant-inp ;

∥VARIANT 型变量转换为ColeSafeArray 型变量

  len = safearray-inp. GetOneDimSize () ; ∥得到有效数据长度

  ……

  }

  UpdateData ( FALSE) ; ∥更新编辑框内容

}

通信程序在发送数据之前还需要初始化串口,在串口时的通信协议必须与SPEC061A 一致,否则 数据传送出错.

……

m-ctrlComm. SetCommPort (1) ; ∥表示选择COM1

if ( ! m-ctrlComm. Get PortOpen() )

m-ctrlComm. Set PortOpen( TRUE) ; ∥打开串口

else AfxMessageBox (”cannot open serial port”) ;

m-ctrlComm. SetSettings (”9600 ,n ,8 ,1”) ;

∥设置波特率9600 ,无校验,8 个数据位,1 个停止位

m-ctrlComm. Set InputModel (1) ; ∥1 :表示以二进制方式检取数据

……

编译运行后的界面如图2 所示,在发送框里可键入字符,然后按发送按钮PC 机就通过串口发送字符给SPEC061A 嵌入式芯片[3 ] .

2. 2  下位机SPEC061A 嵌入式芯片串口通信及实现

    SPEC061A 的UART 的寄存器有控制寄存器P-UART-Command1 和P-UART-Command1、数据缓冲器P-UART-Data、波特率设置寄存器P-UARTBaudScalarHigh和P-UART-BaudScalarHigh. 其实现部分代码如下:

……

R1 = 0x0000 ; ∥设置波特率为9600 bps

[ P-UART-BaudScalarLow] = R1 ;

R1 = 0x0005 ;

[ P-UART-BaudScalarHigh ] = R1 ;

R1 = 0xC0 ;

[ P-UART-Command1 ] = R1 ;

∥设置UART 的工作模式,允许接收和发送中断,无校验

[ P-UART-Command2 ] = R1 ; ∥允许Rx 接收,Tx 发送

……

F-UART-RECEIVE: ∥UART 接收子程序

……

R1 = [ P-UART-Data ] ; ∥串口接收的数据存在R1 寄存器中

……

    编写好的程序是通过凌阳的集成开发环境μ′nSPTM IDE 写到SPEC061A 的Flash Rom 中. 这样就实现了PC 机与SPEC061A 嵌入式芯片之间的通信.

3  该通信系统的应用

    由于μ′nSPTM 内部集成了D/ A 转换器,SPEC061A 嵌入式芯片可以直接输出直流电流(0~3) mA ,因此可以方便的利用SPEC061A 输出电压信号. 由上述PC 与SPEC061A 嵌入式芯片的通信系统非常便利地控制SPEC061A 产生各种数字式的三角波、正弦波、方波、斜波等幅值可调的工业测 试中常用的信号.

[  参 考 文 献 ]

[1 ]  王田苗. 嵌入式系统设计及实例开发—ARM 与μC/OS2 Ⅱ[M] . 北京: 清华大学出版社,2002.

[2 ]  北阳电子公司技资室. 凌阳单片机[ Z] . 2001.

[3 ]  张 湘. 嵌入式系统和嵌入式操作系统[J ] . 现代电子技术,2003 (8) :20 - 24.

The Theory and Realization of Communication TechnologyBased on PC and SPEC061A Embedded Chip

DAN Bin2bin , YI J ian2gang , L IN Zuan

( College of Machinery & A utomation , Wuhan Univ . of Sci . and Technology , Wuhan 430081 , China)Abstract : The Paper int roduces the series of SPEC Embedded Chip. The serial port of the chip can communicatewith the RS232 inteRFace of Computer. We research into the theory and realization of communication technolo2gy. The System generates all kinds of digital waves , such as t riangular wave , sine wave , square wave andoblique wave , which are widely used in indust rial test .

Keywords : embedded chip ; serial communication ; transfer protocols

但斌斌, 易建钢, 林 躜 (武汉科技大学机械自动化学院, 湖北武汉430081)

[此贴子已经被admin于2008-10-6 14:02:29编辑过]
0
2008-10-6 13:43:33   评论 分享淘帖
1 个讨论
好乱啊
2012-8-24 09:38:58 评论

举报

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发表新帖
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表