DSP异步电机直接转矩控制DTC系统(上位机+下位机程序) 第11页
具体格式是(以一部分命令为例):
(1)读Program Memory
50H a0H 03H 04H XXH(起始地址高八位) XXH(起始地址低八位) XXH(终止地址高八位) XXH(终止地址低八位)
(2)传送文件
50H a0H 10H 04H XXH(起始地址高八位) XXH(起始地址低八位) XXH(传输总字节高八位) XXH(传输总字节低八位)
4.3.2 监控程序
监控程序由两部分组成:主程序和串口接收中断程序。主程序主要完成初始化工作,包括对相应的串口寄存器赋值,确定波特率,通信格式(起始位、数据位、停止位的个数),开放中断等工作,然后开始等待串口接收中断。开发系统的功能都由串口接收中断程序完成。其程序框图如图4-5,其中的数据包处理流程图如图4-4所示。
图4-5 串行接收中断程序框图
4.3.3 上位机程序设计
不少编程语言(如C语言,VB,VC等)都能用于上位机程序设计。在高级语言中,C语言被公认为一种“非常接近操作系统底层”的语言,而且C语言提供了对串口的操作函数inport()及outport()等,不失为一种选择,但是用C语言开发用户界面则非常费时费力。Microsoft公司推出的可视化编程语言VB在开发用户界面时极为方便,但在底层操作上则不如C语言直接快捷。本系统中采用了VC编程语言开发上位机程序。这是因为VC所提供的“类向导”等工具不仅能使编程者较为方便地设计出自己所需的用户界面,而且VC也提供了_inp()及_outp()等函数,可直接通过串口接收和发送字节。本系统可实现“串口设置”、“通讯握手”、“传送Hex文件”及“执行程序”等功能(如图4-6所示),下面举例介绍:
1. 串口设置的功能:上,下位机之间要进行良好的通信,必须使两者的波特率、数据字长、停止位等参数保持一致。由于下位机编程不易,因而对串口及数据通信格式进行设置的工作主要由上位机完成。由图4-7可见,使用者可以用鼠标指定串口及波特率,停止位等一系列参数,非常方便。
2. 传送用户程序的功能:用汇编语言编写的源程序(以*.asm表示,其中*代表任意字符串)经过相应的软件编译、连接及转换后,将依次生成*.obj、COFF文件格式、*.lst文件以及*.hex文件。其中*.lst文件是列表文件,在此文件中地址、机器码和汇编指令一一对应,主要用于在调试窗口显示所需调试的程序。本开发系统主要对仅包括地址和机器码的*.hex文件进行处理。即上位机程序在监控程序的帮助下,将*.hex文件中的机器码传送到外部RAM中运行。由于*.hex文件的存储格式是按行排列,每一行包括数据长度、起始地址、数据内容、校验码,因此对*.hex文件的处理也是逐行进行的。具体处理过程如下:要传送程序,首先打开对应的*.hex文件(如图4-8所示),读入一行内容,利用VC提供的字符函数(如Mid(),GetLength等)将这一行内容进行处理,利用10h命令(传送hex文件),通过串口发送到下位机,逐行处理,一直持续到文件尾,这样用户程序就传送完毕。
图4-6 本系统实现的功能
图4-7 设置串口
图4-8 打开对应的hex文件
3. 读取片内寄存器及外部数据存储器的内容:
待调试的程序在运行时,如果能读取某些数据单元(例如:用于存放运算结果的数据单元)及一些寄存器(如A/D转换结果寄存器)的内容,能帮助用户迅速地排除程序中的错误,极大地方便了用户。利用F240汇编语言的In,Out指令,并遵循前面的通讯协议,能够很方便地实现此项功能。(如图4-9所示)
图4-9 “读取数据”功能
§ 4.4 本章小结
本章提出的用软件实现开发机功能的方法,虽然没有将全部的DSP资源提供给用户,但对于一般的DSP开发应用已足够。当然,还可以在此基础上对此开发系统进一步完善(例如:对某一变量(如速度)进行实时显示,并具备“打印”功能等)。实际情况表明:本人设计的这一开发装置使后面开发直接转矩控制程序的效率大幅度提高
<< 上一页 [11] [12] [13] [14] [15] 下一页