数字脉冲宽度调制器的实现
[09-12 00:48:19] 来源:http://www.88dzw.com 接口定义 阅读:8201次
文章摘要: PWM模块使用方法:因为占用了8051外部中断1,所以在不使用该模块时,应该把外部中断2屏蔽。而PWM模块产生的中断请求可以看作是“能接受数据”的信号。中断方法如后“中断读取数据过程”。使用PWM模块,应该先对内部地址8FH的数据寄存器写入数据,然后设置地址8EH的状态寄存器最低位(0)为‘1’,即PWM模块开始工作并输出PWM调制波(如TIMER模块)。在输出PWM调制波过程中,应及时对PWM写入下一个调制数据,保证PWM连续工作,输出波形连续。 (待改进) 中断读取数据过程: PWM模块可以读取数据,申请中断信号INT置位为‘0’,等待8051响应; 8051接受到中断申
数字脉冲宽度调制器的实现,标签:接口技术,微机原理与接口技术,http://www.88dzw.comPWM模块使用方法:因为占用了8051外部中断1,所以在不使用该模块时,应该把外部中断2屏蔽。而PWM模块产生的中断请求可以看作是“能接受数据”的信号。中断方法如后“中断读取数据过程”。使用PWM模块,应该先对内部地址8FH的数据寄存器写入数据,然后设置地址8EH的状态寄存器最低位(0)为‘1’,即PWM模块开始工作并输出PWM调制波(如TIMER模块)。在输出PWM调制波过程中,应及时对PWM写入下一个调制数据,保证PWM连续工作,输出波形连续。 (待改进)
中断读取数据过程:
- PWM模块可以读取数据,申请中断信号INT置位为‘0’,等待8051响应;
- 8051接受到中断申请后,作出中断响应,置位IntResp信号线为‘0’;
- PWM模块收到IntResp信号后,把中断申请信号INT复位为‘1’,等待8051通知读取数据WR信号;
- 8051取出要求数据放于数据总线(DataBus)上,并置WR信号为‘0’;
- PWM模块发现WR信号为‘0’,由数据总线(DataBus)上读取数据到内部数据寄存器,将DONE位置位为‘1’;
- 8051发现DONE信号的上跳变为‘1’,释放数据总线;
- PWM模块完成当前输出周期,复位DONE为‘0’,从此当前数据寄存器可以再次接受数据输入。
注意事项:
1)输出的PWM信号中的高电平部分必须处于一个输出周期的中间,不能偏离,否则输出语音经过低通后必定是一失真严重的结果。
2)对于8位精度的PWM,每个输出周期占用256(28)个机器周期,但是包含256个机器周期至少有22个指令周期,亦即264(22*12)个机器周期,由于语音信号的连续性,256与264之间相差的8个机器周期是不能由之丢空的,否则也会使输出信号失真。如果将须输出数字量按256/264的比例放大输出,亦不可行,因为如此非整数比例放大,放大倍数很小,则经过再量化后小数部分亦会被忽略掉,产生失真。举例:输出数字量为16,按比例放大后为16.5,更会产生难以取舍的问题。
故采取以下办法:该模块以时钟周期为标准,而与TMBus无关,即基本上与8051部分异步工作。读取数据方式为每次读取足够数据段储存于模块内的RAM内(暂定每次读取8字节),储存字节数必须能保证PWM输出该段数据过程中,有足够时间从RAM处继续读取数据。由于占用了8051的外部中断2,中断申请在3个指令周期(36个时钟周期)内必定能得到响应,而PWM模块处理一个数据需要固定耗时256个时钟周期,故能保证PWM模块顺序读取数据中断能及时得到响应,不会影响调制信号的连续性。
3)RD RAM过程是异步过程。
4)输出后数据寄存器不自动清零。因为可以通过把Flags(0)写‘0’而停止PWM模块继续工作。
Tag:接口定义,接口技术,微机原理与接口技术,接口定义
- 上一篇:脉冲宽度控制pwm的工作原理
《数字脉冲宽度调制器的实现》相关文章
- › 数字脉冲编码调制语音合成系列
- › 基于FPGA的数字脉冲压缩系统实现
- › 数字脉冲宽度调制器的实现
- 在百度中搜索相关文章:数字脉冲宽度调制器的实现
- 在谷歌中搜索相关文章:数字脉冲宽度调制器的实现
- 在soso中搜索相关文章:数字脉冲宽度调制器的实现
- 在搜狗中搜索相关文章:数字脉冲宽度调制器的实现
分类导航
最新更新