电机死区
高级控制定时器能够输出两路互补信号,并且能够管理输出的瞬时关断和接通。这段时间通常被称为死区,用户应该根据连接的输出器件和他们的特性(电平转换的延时、电源开关的延时等)来调整死区时间
死区的概念:
简单解释:通常,大功率电机、变频器,末端都是由大功率管、IGBT等原件组成的
H桥或3湘桥,每个桥的上半桥和下半桥是绝对不能相同的,但高速的PWM驱动信号在达到功率元件的控制基时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥原件在应该关断时没有关断,造成功率元件烧毁
死区就是在上半桥关断后,延迟一段时间在打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁,这段延迟时间就是死区
附:
H桥驱动电路原理
H桥驱动电路 图4.12中所示为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图4.12及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。如图所示,H桥式电机驱动电路包括 4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。要使电机运转,必须使对角线上的一对三极管导通。例如,如图4.13所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经 Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。图4.14所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
二、使能控制和方向逻辑 驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。=============================================三相桥式整流电路http://www.01ruodian.com/school/news.asp?id=4197
http://www.iteye.com/news/23090
一、彩信开发动态链接库简介
多媒体短信服务
(
MMS
)
,也就是通常所说的彩信,是在短信息服务
(SMS)
和增强短信服务
(
EMS
)
技术基础上进一步发展起来的。典型的彩信是以
MIME
格式编码打包,并通过
WAP
协议进行传递的
(另一种方式使
用
TCP/IP
协议
)
。本动态链接库采用的就是此种方式。
本动态链接库是在
Microsoft Visual Studio 2005下使用
C#语言开发的
DLL类库,
提供简单的开发流程,灵活的开发方式,支持多种彩信文件:
1
、标准MMS格式,文件后缀名“.mms”。此格式包含彩信消息头和消息体,且消息头中应包含发送目标信息,如对方手机号码。如果开发人员有已经打包好的MMS文件,可以调用动态链接库中的函数直接发送。
2
、SMIL文件+独立多媒体文件。开发人员独自编写SMIL文件,可以获得更丰富的彩信表现能力。开发人员只须向发送链表中加入SMIL文件和相应的多媒体文件即可。此程序可以对其自动打包,以生成标准的MMS格式。
3
、独立的多媒体格式。为了提高彩信的兼容性,本程序采用标准封装方式,将独立的多媒体文件打包成MMS格式,以便大多数用户能够收到彩信。目前,本动态链接库支持常用的多媒体文件。
文本文件:txt格式,必须采用UTF-8编码格式;
图片文件:jpg,bmp,gif,png;
声音文件:amr,mid,midi。
二、彩信开发动态链接库详解
1
、彩信开发动态链接库简明案例
采用本动态链接库发送彩信非常简单方便。
⑥ string szReult = ms.Send(mm);
⑧ mm.ClearFile();
第①行代码设置彩信标题,第②行代码设置发送目标号码,③-⑤行代码添加文件,第⑥行代码发送彩信,第⑦行代码清除发送目标,第⑧行代码清除发送文件。
方法一:若发送标准MMS格式彩信,只添加第③行代码即可。
方法二:若发送SMIL文件+独立多媒体文件,可以注释掉第③行,添加第④行和第⑤行。
方法三:若发送独立文件,只须添加第⑤行。
多种情况下的处理工作全部由第⑥行函数完成。
不管是方法二还是方法三,一次可以添加多个独立多媒体文件,只需重复调用
AddFile()函数即可。
注意:采用方法二时,
smil文件必须第一个添加到动态数组中。
本程序没有使用重载的方式编写
Send()函数,是为了增加程序的灵活性。二次开发人员可以任意组合手机号码与彩信内容。
2
、彩信开发动态链接库
本动态链接库名字空间为“
MMSLib”,包含两个类:“
MMSender”和“
MMessage”。
类
MMSender包含四个函数:
MMSender()
构造函数;
void SetMMSC(string)
设置彩信中心网址;
void SetProxy(string)
设置代理服务器网关。
string Send(MMSLib.MMessage)
发送彩信函数;
类
MMessage包含七个函数:
MMessage()
构造函数;
void SetSubject(string)
设置彩信标题;
void AddTo(string)
添加目标手机号码;
void AddFile(string)
添加文件;
void ClearTo()
清除链表中目标手机号码;
void ClearFile()
清除链表中文件;
byte[] GetContent()
打包并获取彩信,
Send()中已封装此函数。
3
、函数详解
类
MMSender主要包含发送彩信的相关方法。
⑴
MMSender()
构造函数
通过如下代码可以创建一个
MMSender对象。
MMSender ms = new MMSender();
⑵
void SetMMSC(string)
设置彩信中心网址
通过如下代码可以设置彩信中心网址,根据不同的
SIM卡采用不同的地址。
ms.SetProxy("10.0.0.172:80");
⑷
string Send(MMSLib.MMessage)
发送彩信函数
在调用
string Send(MMSLib.MMessage)方法之前,应首先创建
MMessage对象,并对其初始化。
Send()方法封装了网络初始化方法,彩信读取方法,网络通讯方法。此方法完成了彩信发送的全过程。
类
MMessage主要包含彩信打包的相关方法。
⑸
MMessage()
构造函数
通过如下代码可以创建一个
MMessage对象。
MMessage mm = new MMessage();
⑹
void SetSubject(string)
设置彩信标题;
通过如下代码可以设置彩信标题。
mm.SetSubject("彩信测试
");
⑺
void AddTo(string)
添加目标手机号码
添加接收号码,调用一次添加一个接收号码。
通过如下代码可以添加目标手机号码
mm.AddTo("131********");
⑻
void AddFile(string)
添加文件
通过如下代码可以添加文件;
mm.AddFile("E:/…/***.***");
⑼
void ClearTo()
清除链表中目标手机号码
通过如下代码可以清除链表中目标手机号码
mm.ClearTo();
⑽
void ClearFile()
清除链表中文件
通过如下代码可以清除链表中文件
mm.ClearFile();
⑾
byte[] GetContent()
打包并获取彩信,
Send()中已封装此函数。
此函数是整个程序的核心部分,读取
lDest和
lFile中的信息,并将其打包成
MMS格式二进制数据。
4
、完整的例子
三、
MMS文件解析
1
、MMS文件详解
每个
MMS都是由
MMS Header和
MMS Body组成。
如图所示,
MMS文件主要包含两部分:
1、
MMS headers;
2、
Message Body。
为了保证彩信兼容多种手机型号,本文的
Message Body部分采用标准
SMIL2.0语言描述。因此,本文所涉及的
MMS文件可细分为三个部分:
1、
MMS headers。
2、
SMIL2.0语言描述文件。
3、
Message Body中多媒体文件。
如果用户只输入:
mm.AddFile("E:/…/***.mms"); //
发送
MMS格式彩信
则,程序将此彩信直接发送。
如果用户输入如下形式:
mm.AddFile("E:/ …/***.smil"); //
添加
SMIL文件
mm.AddFile("E:/ …/ID-0001.gif"); //
添加多媒体文件
则程序只添加MMS headers部分,其他部分打包实现。
注意:在此种情况下,
smil必须第一个添加到动态数组中。
如果用户只输入多媒体文件:
mm.AddFile("E:/ …/ID-0001.jpg"); //
添加多媒体文件
mm.AddFile("E:/ …/ID-0001.txt"); //
添加多媒体文件
则程序添加
MMS headers部分,并按照固定的方式编写
SMIL文件,同时对多媒体文件打包,以便生成完整的
MMS格式文件。
2
、SMIL语言简介
SMIL是同步多媒体集成语言(
Synchronized Multimedia Integration Language)的缩写
,念做
smile。它是由
3W(World Wide Web Consortium)组织规定的多媒体操纵语言。最新的
SMIL版本是
2001年
8月推出的
SMIL 2.0版本。
SMIL与我们网页上用的
Html(超文本传输语言)的语法格式非常相似。后者主要针对普通的网络媒体文件进行操纵(文字、图片、声音、动画、视频的机械堆砌),而前者则操纵多媒体片断(对多媒体片断的有机的、智能的组合)。
SMIL 2.0版本,参见:
http://www.w3.org/TR/2005/REC-SMIL2-20050107/
。
SMIL 1.0版本,参见:
http://www.w3.org/TR/1998/REC-smil-19980615/
。
3
、简单的SMIL文件
本例子为本程序中内置的
SMIL语言文本。如果开发人员只添加独立的多媒体文件,则本例子中的通用文本会添加到打包文件中去。
<smil xmlns="http://www.w3.org/2001/SMIL20/CR/Language">
<head>
<meta name="title" content="mmsPower" />
<meta name="copyright" content="MMSPC2PHONE" />
<meta name="version" content="0.309" />
<layout>
<root-layout width="176" height="208"/>
<region id="Text" top="0%" left="0%" height="100%" width="100%"/>
<region id="Image" top="0%" left="0%" height="100%" width="100%"/>
</layout>
</head>
<body>
<par dur="10000ms">
<text src="/blog_article/ID-0001.txt" region="Text"/>
</par>
<par dur="10000ms">
<img src="/blog_article/ID-0001. jpg" region="Image"/>
</par>
<par dur="10000ms">
<audio src="/blog_article/ID-0001.mid" repeat="indefinite"/>
</par>
</body>
</smil>
四、创建彩信开发平台
1
、彩信开发平台简述
彩信开发动态链接库属于彩信开发平台的中间层,完整的彩信开发平台还需要彩信猫硬件的支持和
WAP网络连接。
彩信开发平台的创建过程如下:
第一步,确保彩信猫硬件连接正常(略);
第二步,在超级终端下通过
AT指令对彩信猫进行初始化,建立彩信猫对
GPRS、
WAP网关的支持;
第三步,设置拨号网络连接。通过此连接,可以使计算机通过彩信猫访问
WAP网关。
详细步骤参见本章第
2节。
AT指令设置图解详见本章第
3节。超级终端与
AT指令的相关知识参见本文附录。
设置拨号网络连接图解详见本章第
4节。
创建彩信开发平台后,再将本动态链接库引入二次开发系统中,即可建立完整的彩信应用环境。此过程详见本章第
5节。
2
、彩信猫GPRS拨号连接的设置过程
以下过程在后面章节中有详细图解。
一) AT
指令设置部分
(1) AT+CGCLASS=”B”
置为“
B”模式。
(2) AT+CGDCONT=1,”IP”,”CMWAP”
设置
WAP连接。 (改成AT+CGDCONT=1,”IP”,”CMNET”)
(3) AT+CSQ
检查信号
若返回
10—
31,
0之间的信号数字则继续,如果信号是
99,
99,则应该考虑不停的键入
A/命令,不停的让模块去搜寻网络。
(4) AT+CGACT=1,1
激活
,返回
OK则继续。
(5) AT+CGREG?
若返回为
0,
1则可以,若返回
0,
0则不行返回(
1)重来。或者,不停键入
A/,多次执行
AT+CGREG?命令。
(6) AT+IPR=115200;&W
更改模块速率并保存。
二)
设置
MODERN
(1)
控制面板
à
调制解调器
à
常规
à
选择添加
à
不检测调制解调器
à
标准调制解调器类型
à
标准
19200(应该改成33600,妈的搞死了)bps
调制解调器
à
通讯串口
1(建议只使用串口
COM1)
(2)
设置
19200调制解调器
属性
à
调制解调器
à
最高速率(
115200
)
三)
设置拨号网络
(1)
新建连接
à
标准
19200调制解调器
(2)
区号置空
à
电话号码
{GPRS V5.29版本设置为
*99***1#
)
{注意:如果是
GPRS 5.26版本号的话,电话号码改为
*98*1#}
(3)
完成
四)
双击新建的拨号网络,置空用户名和密码,拨号进行,检测用户名和密码,通过之后登陆网络。
3
、通过AT指令对GPRS设备进行初始化
4
、创建拨号网络连接
⑴
设置
MODERN
打开:控制面板
à
调制解调器
à
选择“添加”。
弹出“添加硬件向导”对话框,选择“不检测调制解调器”,单击“下一步”。
COM1)
显示“选择制造商与型号”界面,选择“标准调制解调器类型”,“标准
19200bps
调制解调器”
,单击“下一步”。此过程可能占用较长时间,请耐心等待。
显示“选择调试解调器的端口”界面,点击“
COM1”(由彩信猫所连接的端口号决定),点击“下一步”。
依次出现如下界面:
点击“完成”后,可出现如下界面:
单击“属性”,显示“标准
19200 bps
调制解调器
属性”对话框
选择“调制解调器”属性页,“最大端口速度”设置为“
115200”,单击确定。
至此,
MODERN设置结束。
⑵
设置拨号网络
新建连接
选择“连接到
Internet”,单击“下一步”。
选择“手动设置我的连接”,单击“下一步”。
选择“用拨号调制解调器连接”,单击“下一步”。
输入“
ISP名称”,可以自定义,我在这里设置为“标准
19200调制解调器”。
设置电话号码为“
*99***1#
”。
注意:如果是
GPRS 5.26版本号的话,电话号码改为“
*98*1#
”。
“
Internet帐户信息”的用户名和密码不用设置,单击“下一步”
5
、动态链接库的引用方法
本动态链接库是在
Microsoft Visual Studio 2005下使用
C#语言开发的
DLL类库,所以在此环境下开发彩信发送程序,动态链接库的引用方法非常简单。
如下图所示,在“项目”菜单下选择“添加引用”。
在“添加引用”对话框中,选择“浏览”选项卡,选择本动态链接库“
MMSLib.dll”,单击“确定”按钮,
动态链接库即成功引入用户程序中。
在“资源管理器”中,在“引用”目录下,即可看到刚才添加的动态链接库的名字空间。
在“对象浏览器”下,可以看到“
MMSLib”的对象信息。
程序需要添加如下代码才可以使用动态链接库中的对象:
using
MMSLib;
下面是一个简单的例子:
通过拨号连接网络,然后再运行此程序,就可以发送彩信了。注意查看
SIM卡是属于哪个运营商的,从而设置不同的彩信中心网址。
五、综述
前面章节详细介绍了彩信开发的各个过程。下面将开发流程再细数一遍,以提供开发人员整体的开发思路。
因为彩信应用系统是软硬件结合的系统,所以,在进行开发之前,开发人员应确保彩信猫设备连接正常。
彩信猫连接计算机后,需要对彩信猫进行初始化,可以在超级终端下通过
AT指令对彩信猫进行检测,并进行
GPRS网络设置,使其支持
GPRS网络连接。超级终端与
AT指令的使用方法详见本文附录。
GPRS网络设置方法详见第四章第
2节和第
3节。
初始化硬件后,需要建立拨号网络连接,详细内容参见第四章第
2节和第
4节。
创建开发平台后,开发人员只需将本动态链接库引用至自己的软件开发环境即可。详细内容参见第四章第
5节。
动态链接库相关内容总结如下:
动态链接库的结构信息,参见第二章第
2节。函数详解,参见第二章第
3节。
动态链接库简明使用例子参见第二章第
1节,完整的使用例子参见第二章第
4节。
两个例子包含了彩信发送过程的相关过程。
本动态链接库支持的彩信文件格式,参见第一章。
MMS打包格式详解,参见第三章。
彩信程序编写完成后,发送彩信的过程如下:
1、通过拨号连接
GPRS网络;
2、运行彩信程序。
附录一、超级终端简介
超级终端是
windows自带的一个串口调试工具,其使用较为简单,被广泛使用在串口设备的初级调试上。
打开超级终端:开始
à
程序
à
附件
à
通讯
à
超级终端。
下面介绍一下一般使用的步骤
:
配置连接需要调试串口基本参数,其操作为:
⑴
选择菜单
“文件
”下
“属性
”菜单项。
⑵
配置调试设备所连接串口
“连接时使用
”
⑶
按
“配置
”按钮进行配置选定串口信息
⑷
依次选定每秒位数(波特率)等参数,一般情况下
MODEM设置波特率后即可,其它位取默认设置。
⑸
确定退出配置
⑹
按工具条上
“呼叫
”按钮连接所调试设备
⑺
输入英文字母
AT然后回车,此时如果设置正确,则会返回英文字母
OK
⑻
如果参数设置不正确,则提示无法连接,或者连接后无法输入
AT字母,此时,请确认步骤
⑵
中串口选择正确、请确认波特率设置正确。
⑼
大部分
GPRS MODEM出厂的时候其波特率已经设置为
115200,但是也可能部分设置为
9600或者其它。在
MODEM支持的范围内,越高的波特率代表了越高的计算机传输数据到
MODEM的能力。
附录二、
AT指令
AT指令是指从终端设备(
Terminal Equipment, TE)或数据终端设备(
Data Terminal Equipment,
DTE)向终端适配器(
Terminal Adapter, TA)或数据电路终端设备(
Data Circuit Terminal Equipment, DCTE)发送,用于控制移动台(
Mobile Station, MS)的功能,以实现与
GSM网络业务进行交互的操作指令。
20世纪
90年代初,
AT指令仅被用于调制解调器操作。当时,为了能够控制
MODEM工作,原著名通信设备生产商
Hayes制定了一套指令,通过通信软件(如超级终端)控制
MODEM的各项操作。这套指令称为“
AT指令”。
由于当时缺少对移动电话文本消息控制的先例,因此人们开发了一种称为“
SMS Block Mode”的协议,通过终端设备或计算机来控制短消息服务。几年后,诺基亚、爱立信、摩托罗拉和惠普等几大主要的移动电话生产厂商又共同研制了一整套用于
GSM业务的
AT指令,并形成
GSM 07.05标准以及在此之后的
GSM 07.07标准。目前,
AT指令已经在手机通信中发挥重要的作用,通过
AT指令能够控制手机执行许多操作,包括呼叫服务、短消息服务、传真、
GPRS等。
(以上内容摘自《
Q2406无线
CPU嵌入式开发技术》,洪利、杜耀宗编著,北京航空航天大学出版社出版)
常用的几个
AT命令
⑴
AT
测试指令,返回
OK表示串口设备正常
⑵
AT+CGMM
显示
MODEM型号
⑶
AT+CGMR
显示
MODEM软件版本号
⑷
AT+CGMI
显示
MODEM生产厂家
⑸
AT+IPR=?/AT+IPR?/ AT+IPR=115200
前者查询
MODEM支持的所有波特率,后者显示当前设定波特率,最后一条是设置
MODEM波特率为
115200。