存档

文章标签 ‘Electrical’

解惑–关于笔记本的PC卡转并口端口地址不能更改的问题

2008年6月22日

如果你是找解决方法找到这个帖子的,那么很遗憾,我解决不了这个问题。现在我只是想说说为什么解决不了。

去年底,还在无锡的时候,程杰买了一个PCMCIA的并口卡,100多块,结果因为不能更改IO地址,仿真软件都没法识别到PC卡的并口,所以后来又退掉了,只是那时候我还用着我的老联想,所以没在意怎么解决。现在新换的X60没有并口,这让我很郁闷,所有的仿真器都用不了了,突然需要用到了并口,虽然知道PCMCIA卡转出来的并口不好用,但是还是禁不住诱惑买了一块回来做测试。

今天上午10点的样子收到卡到现在一直在研究这块卡,但是得出来的结论是依然无法改端口地址。至于原因,我想是这样子的,这块卡的驱动芯片是NM9805(据我所知,市面上卖的卡都是这个驱动芯片),这个芯片是基于PCI接口的(废话,插在PC卡上),地址范围当然是在PCI16位地址内。而378/278那个地址是系统保留给主板自带并口使用,不会分配给 PCI转接卡使用的。所在没有办法改。

但他们的功能是一样的,仅是操作地址不同。只要能在软件里将所操作的并口地址改为uPnP分配到的地址就可以正常工作。

目前为止我只找到了一款软件能更改并口地址,就是H-Jtag,所以我的这块卡就变成了ARM专用了,呵呵。。。

Jacob 技术

8086汇编写的七段数码管程序

2008年6月16日

考G的前几天,我妹妹找我写8086程序,说是课程设计,一直拖到现在才写,没有调试环境也不知道结果对不对。

题目是这样的:
系统实验平台上的七段数码管显示是采用共阴极。参考资料如下:

图1-1共阴共阳极数码管

相应的驱动显示数据如表1-1所示

表1-1共阴共阳极数码管段码

现要求:利用8255A的A口接开关量,利用两个数码管分别显示A口的开关量的数值。如A口的开关量为0101 0011,则这两个数码管的显示数值为:53;如果如A口的开关量为1111 1010,则这两个数码管的显示数值为:FA;依次类推。(本题只要求显示0-F共16个)。
(1)、请设计线路图,并画出连接线路图。
(2)、完成完整的程序。
(3)、验证设计的结果。

注:
实验平台上的8255A端口地址是:A口是60H;B口是61H;C口是62H;控制口是63H

这是我写的程序:

;课程设计一:七段数码管
;题目要求:利用8255A的A口接开关量,利用两个数码管分别显示A口的开关量的数值。如A口的开关量为0101 0011,
;          则这两个数码管的显示数值为:53;如果如A口的开关量为1111 1010,则这两个数码管的显示数值为:
;          FA;依次类推。(本题只要求显示0-F共16个)。
;程序说明:本程序为8086汇编程序,使用两个共阴数码管显示8255A口所接的开关量,硬件连接如下:
;          8255的A口接开关量,B口接两个共阴数码管的a-g,dp,C口低二位分别接两个数码管的公共
;          端作为片选信号。(电路图略)

OUTPORT1 EQU 63H    ;8255控制寄存器端口地址
OUTPORTA EQU 60H    ;A口地址
OUTPORTB EQU 61H    ;B口地址
OUTPORTC EQU 62H    ;C口地址
DATA SEGMENT      ;LED为共阴七段数码管码表
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS
CODE SEGMENT        ;定义代码段
ASSUME CS:CODE,DS:DATA
START:    MOV AX,DATA
MOV DS,AX

MOV AL,10010000B  ;控制字,方式0,A口输入,B口、C口输出
MOV DX,OUTPORT1    ;控制寄存器端口送DX
OUT DX,AL      ;控制字送8255

MOV DX,OUTPORTA    ;读取端口A
IN AL,DX      ;

MOV BL,AL      ;保留读取值

MOV CL,04      ;取低四位
SHL AL,CL
SHR AL,CL
LEA BX,LED      ;DATA送BX
XLAT        ;查表

MOV DX,OUTPORTB    ;B口地址送DX
OUT DX,AL      ;数据送B口显示
MOV AL,02H      ;送位码02H至C口
MOV DX,OUTPORTC    ;C口地址送DX
OUT DX,AL      ;C口输出

CALL DELAY      ;小延时

MOV AL,BL      ;恢复已读取的数据
MOV CL,04      ;取高四位
SHR AL,CL
LEA BX,LED      ;DATA送BX
XLAT        ;查表
MOV DX,OUTPORTB    ;B口地址送DX
OUT DX,AL      ;数据送B口显示
MOV AL,01H      ;送位码01H至C口
MOV DX,OUTPORTC    ;C口地址送DX
OUT DX,AL      ;C口输出

CALL DELAY      ;小延时

JMP START      ;循环

DELAY  PROC      ;小延时子程序
PUSH CX
PUSH AX
MOV AX,6
X1:  MOV CX,0ffFH
X2:  DEC CX
JNE X2
DEC AX
JNE X1
POP AX
POP CX
RET
DELAY ENDP

CODE ENDS      ;代码段结束
END START      ;源程序结束

Jacob 技术

频谱分析仪和示波器的比较

2008年1月10日

示波器顾名思义就是用来观察信号的波形的,也就是信号幅度随时间的变化而变化的图形(曲线).
频谱分析仪用来观察信号的各频率下的能量分布,

联系和区别:示波器仅能根据波形\查信号的周期来分析现象,而无法精确分析信号中各种频率分量,
频谱分析仪则相反,虽然能够精确分析信号中各种频率分量,但无法了解各频率分量中的相位关系,以及它们组合后的整体波形.

在示波器中,横坐标是时间,纵坐标是电压幅度(V)
而在频谱分析仪中,横坐标是频率,纵坐标是幅度(通常用DB量度)
如果用的是数字仪器,通常这两种功能很容易同时实现.

甚至配合声卡的spectralab软件,也能分析复合信号的相位、频率、幅度,并可当一台简易示波器使用,只是声卡采样频率不高限制了有效分析带宽.

Jacob 技术

【转帖】示波器有关知识及选型方案

2008年1月8日

示波器自从问世以来,它一直是最重要、最常用的电子测试仪器之一。由于电子技术的发展,示波器的能力在不断提升,其性能与价格也五花八门,市场参差不齐。示波器看似简单,但如何选择,也存在许多问题。本文根据多年的经验,结合北京海洋兴业科技有限公司选型指南,从几个方面告知您在选择示波器时应注意的问题:

一、了解您需要测试的信号
您要知道用示波器观察什么?您要捕捉并观察的信号其典型性能是什么?您的信号是否有复杂的特性?您的信号是重复信号还是单次信号?您要测量的信号过渡过程的带宽,或者上升时间是多大?您打算用何种信号特性来触发短脉冲、脉冲宽度、窄脉冲等?您打算同时显示多少信号?您对测试信号作何种处理?

二、选择示波器的核心技术差异:模拟(DRT)、数字(DSO)、还是数模兼合(DPO)
传统的观点认为模拟示波器具有熟悉的控制面板,价格低廉,因而总觉得模拟示波器 “ 使用方便 ” 。但是随着 A/D 转换器速度逐年提高和价格不断降低,以及数字示波器不断增加的测量能力和实际上不受限制的测量功能,数字示波器已独领风骚。但是数字示波器显示具有三维的缺陷、处理连续性数据慢等缺点,需要具有数模兼合技术的示波器,例 DPO 数字荧光示波器。

三、确定测试信号带宽
带宽一般定义为正弦波输入信号幅度衰减到 -3dB 时的频率,即幅度的70.7% 。带宽决定示波器对信号的基本测量能力。如果没有足够的带宽,示波器将无法测量高频信号,幅度将出现失真,边缘将会消失,细节数据将被丢失;如果没有足够的带宽,得到的信号所有特性,包含响铃和振鸣等都毫无意义。
一个决定您所需要的示波器带宽有效经验—— “5倍经验准则”:将您要测量的信号最高频率分量乘以5,使测量结果获得高于2%的精度。
在某些应用场合,您不知道你的感兴趣的信号带宽,但是您知道它的最快上升时间,这时频率响应用下面的公式来计算关联带宽和仪器的上升时间: Bw=0.35/信号的最快上升时间。
数字示波器带宽有两种类型:重复(或等效时间)带宽和实时(或单次)带宽。重复带宽只适用于重复的信号,显示来自于多次信号采集期间的采样。实时带宽是示波器的单次采样中所能捕捉的最高频率,且当捕捉的事件不是经常出现或瞬变信号时就更为重要,实时带宽与采样速率紧密联系。
带宽越高越好,但是更高的带宽往往意味着更高的价格,因此应按照预算来选择您要观察的信号频率成分。

四、A/D转换器的采样速率(或采样速度)
单位为每秒采样次数( S/s ),指数字示波器对信号采样的频率。示波器的采样速率越快,所显示的波形的分辨率和清晰度就高,重要信息和事件丢失的概率就越小。
如果需要观测较长时间范围内的慢变信号或低频信号,最小采样速率就发挥了作用,为了在显示的波形记录中保持固定的波形数,需要调整水平控制旋钮,而所显示的采样速率也将随着水平调节旋钮的变化而变化。
如何计算采样速率?计算方法取决于所测量的波形类型,以及示波器所采用的信号重建方式,例正弦插入法,矢量插入法等。为了准确地再现信号并避免混淆,奈奎斯定理规定:信号的采样速率必须不小于其最高频率成分的两倍。然而,这个定理的前提是基于无限长时间和周期连续的信号。由于示波器不可能提供无限时间的记录长度,而且从定义上看,低频干扰是不连续的,也不是周期的,所以采用两倍于最高频率成分的采样速率通常是不够的。
实际上,信号的准确再现取决于其采样速率和信号采样点间隙所采用的插值法,即波形重建。一些示波器会为操作者提供以下选择:测量正弦信号的正弦插值法,以及测量矩形波、脉冲和其他信号类型的线性插值法。

有一个比较采样速率和信号带宽时很有用的经验法则:如果您正在观察的示波器有内插(通过筛选以便在取样点间重新生成),则(采样速率 / 信号带宽)的比值至少应为 4∶1 ;无正弦内插时,则应采取 10∶1 的比值。

五、屏幕刷新率也称为波形更新速度
所有的示波器都会闪烁,示波器每秒钟以特定的次数捕获信号,在这些测量点之间将不再进行测量,这就是波形捕获速率,也称屏幕刷新率,表示为波形数每秒( wfms/s )。一定要区分波形捕获速率与A/D采样速率的区别。采样速率表示示波器在一个波形或周期内A/D采样输入信号的频率 ; 波形捕获速率则是指示波器采集波形的速度。波形捕获速率取决于示波器的类型和性能级别,且有着很大的变化范围。高波形捕获速率的示波器将会提供更多的重要信号特性,并能极大地增加示波器快速捕获瞬时的异常情况,如抖动、矮脉冲、低频干扰和瞬时误差的概率。
一般来讲,模拟示波器由于电路简单,其屏幕刷新率较高,而数字存储示波器( DSO )使用串行处理结构每秒钟可以捕获 10 到 5000 个波形。为了改变数字示波器屏幕刷新率低的问题,数字荧光示波器采用并行处理结构,可以提供更高的波形捕获速率,有的高达每秒数百万个波形,大大提高了捕获间歇和难以捕捉事件的可能性,并能让您更快地发现信号存在的问题。

六、选用适当的存储深度,也称记录长度
存储深度是示波器所能存储的采样点多少的量度。如果您需要不间断的捕捉一个脉冲串,则要求示波器有足够的存储器以便捕捉整个事件。将所要捕捉的时间长度除以精确重现信号所须的采样速率,可以计算出所要求的存储深度。
存储深度与采样速率密切相关。您所需要的存储深度取决于要测量的总时间跨度和所要求的时间分辨率。
现代的示波器允许用户选择记录长度,以便对一些操作中的细节进行优化。分析一个十分稳定的正弦信号,只需要 500 点的记录长度;但如果要解析一个复杂的数字数据流,则需要有一百万个点或更多点的记录长度。
在正确位置上捕捉信号的有效触发,通常可以减小示波器实际需要的存储量。

七、根据需要选择不同的触发功能
示波器的触发能使信号在正确的位置点同步水平扫描,使信号特性清晰。触发控制按钮可以稳定重复的波形并捕获单次波形。

Jacob 技术 ,

数字示波器中带宽与采样速率概念解释

2008年1月8日

为了准确地再现信号并避免混淆,奈奎斯定理规定:信号的采样速率必须不小于其最高频率成分的两倍。这里的采样速率是指AD的采用速率,最高频率成分是指被测信号的频率。然而,这个定理的前提是基于无限长时间和周期连续的信号。由于示波器不可能提供无限时间的记录长度,而且从定义上看,低频干扰是不连续的,也不是周期的,所以采用两倍于最高频率成分的采样速率通常是不够的。

实际上,信号的准确再现取决于其采样速率和信号采样点间隙所采用的插值法,即波形重建。一些示波器会为操作者提供以下选择:测量正弦信号的正弦插值法,以及测量矩形波、脉冲和其他信号类型的线性插值法。

有一个比较采样速率和信号带宽时很有用的经验法则:如果您正在观察的示波器有内插(通过筛选以便在取样点间重新生成),则(采样速率 / 信号带宽)的比值至少应为 4∶1 ;无正弦内插时,则应采取 10∶1 的比值。

MSPS 是指抽样速率(Million samples per second),是指从模拟信号里抽样的速率。对抽样后的点,要进行量化和编码,量化编码以后就是2进制的数字信号了,这时候单位就换成了Mbit 或MByte。具体换算可以根据A/D的分辨率来换。而每符号用几位数据则决定于A/D转换的位数精度。

在我的课题中,我将要采用的AD 转换器是ADI公司的AD9283BRS-100,其为8bit,100MSPS,3V的AD转换器。也就是说根据奈奎斯特定理,2片 AD9283BRS-100交替采样,将能实现100M的带宽;而根据经验法则,使用正弦内插采样方式,将实现50M的带宽;无正弦内插时,将实现20M 的带宽。

Jacob 技术 ,

Protel DXP 快捷键大全

2007年8月4日

enter——选取或启动
esc——放弃或取消
f1——启动在线帮助窗口
tab——启动浮动图件的属性窗口
pgup——放大窗口显示比例
pgdn——缩小窗口显示比例
end——刷新屏幕
del——删除点取的元件(1个)
ctrl+del——删除选取的元件(2个或2个以上)
x+a——取消所有被选取图件的选取状态
x——将浮动图件左右翻转
y——将浮动图件上下翻转
space——将浮动图件旋转90度
crtl+ins——将选取图件复制到编辑区里
shift+ins——将剪贴板里的图件贴到编辑区里
shift+del——将选取图件剪切放入剪贴板里
alt+backspace——恢复前一次的操作
ctrl+backspace——取消前一次的恢复
crtl+g——跳转到指定的位置
crtl+f——寻找指定的文字
alt+f4——关闭protel
spacebar——绘制导线,直线或总线时,改变走线模式
v+d——缩放视图,以显示整张电路图
v+f——缩放视图,以显示所有电路部件
home——以光标位置为中心,刷新屏幕
esc——终止当前正在进行的操作,返回待命状态
backspace——放置导线或多边形时,删除最末一个顶点
delete——放置导线或多边形时,删除最末一个顶点
ctrl+tab——在打开的各个设计文件文档之间切换
alt+tab——在打开的各个应用程序之间切换
a——弹出edit\align子菜单
b——弹出view\toolbars子菜单
e——弹出edit菜单
f——弹出file菜单
h——弹出help菜单
j——弹出edit\jump菜单
l——弹出edit\set location makers子菜单
m——弹出edit\move子菜单
o——弹出options菜单
p——弹出place菜单
r——弹出reports菜单
s——弹出edit\select子菜单
t——弹出tools菜单
v——弹出view菜单
w——弹出window菜单
x——弹出edit\deselect菜单
z——弹出zoom菜单
左箭头——光标左移1个电气栅格
shift+左箭头——光标左移10个电气栅格
右箭头——光标右移1个电气栅格
shift+右箭头——光标右移10个电气栅格
上箭头——光标上移1个电气栅格
shift+上箭头——光标上移10个电气栅格
下箭头——光标下移1个电气栅格
shift+下箭头——光标下移10个电气栅格
ctrl+1——以零件原来的尺寸的大小显示图纸
ctrl+2——以零件原来的尺寸的200%显示图纸
ctrl+4——以零件原来的尺寸的400%显示图纸
ctrl+5——以零件原来的尺寸的50%显示图纸
ctrl+f——查找指定字符
ctrl+g——查找替换字符
ctrl+b——将选定对象以下边缘为基准,底部对齐
ctrl+t——将选定对象以上边缘为基准,顶部对齐
ctrl+l——将选定对象以左边缘为基准,靠左对齐
ctrl+r——将选定对象以右边缘为基准,靠右对齐
ctrl+h——将选定对象以左右边缘的中心线为基准,水平居中排列
ctrl+v——将选定对象以上下边缘的中心线为基准,垂直居中排列
ctrl+shift+h——将选定对象在左右边缘之间,水平均布
ctrl+shift+v——将选定对象在上下边缘之间,垂直均布
f3——查找下一个匹配字符
shift+f4——将打开的所有文档窗口平铺显示
shift+f5——将打开的所有文档窗口层叠显示
shift+单左鼠——选定单个对象
crtl+单左鼠,再释放crtl——拖动单个对象
shift+ctrl+左鼠——移动单个对象
按ctrl后移动或拖动——移动对象时,不受电器格点限制
按alt后移动或拖动——移动对象时,保持垂直方向
按shift+alt后移动或拖动——移动对象时,保持水平方向

Jacob 技术

AVR口线方式驱动DDS模块(旧),芯片AD9850

2007年7月31日

把模块上那块万恶的CPLD拆了,直接驱动口线,成功驱动~模块产生的正弦波很漂亮,频率能到很高,到普源25M的示波器极限是没什么问题。芯片转换出来的方波就不行了,上M就不漂亮~

对输入AD9850的标准正弦波,进行直接数字合成生成。输入频率最高为125MHZ,可生成0-Fclk/2范围内的任意频率正弦波和方波。

+3.3V或+5V单电源工作,正常,掉电模式。
可输入的时钟频率最高可达125MHZ
频率分辨率达到2^-32

AD9850 采用直接数字合成技术,利用片内集成的高性能的DAC和高速比较器,形成完全可编程的频率合成器和时钟发生器。可输入的时钟频率最高可达125MHZ,具有32bit的频率字使得频率分辨率达到2-32; 5bit来进行相位调制,允许输出以180o,90o,45o,22.5o,11.25o,以及它们的任意组合和相位角为增量跳变。具有可选的串行或并行数据传输方式。

此模块应用中,dds9850采用的是并行输入方式。

并行输入方式下,内部40bit的寄存器装载5个8位的字节。如下为并行输入时的频率字:W0包含相位调制字,掉电模式控制和装载模式控制。接下来的W2到W5是32bit的频率控制字。

Jacob 技术 ,

E2PROM操作,解决重启问题

2007年7月29日

#define EERE 0
#define EEWE 1
#define EEMWE 2

void E2PROM_Write(unsigned int Addr,unsigned char Data)
{
while(EECR & (1< EEAR=Addr;
EEDR=Data;

EECR|=(1<

EECR|=(1< }

unsigned char E2PROM_Read(unsigned int Addr)
{
while(EECR & (1<

EEAR=Addr;
EECR|=(1<

return EEDR;
}

E2PROM读写函数,没有考虑中断的影响,毕竟这东西用的不多,本来以为这样子就可以用了,写了段记录开机次数的程序。

temp=E2PROM_Read(0×00a);

E2PROM_Write(0×00a,temp+1);

运行,结果0×00a地址的值确实在增加,只不过是不停的增加,换句话来说就是单片机不停的重启,查了写资料,发现是看门狗的缘故,在写E2PROM的时候必须喂狗,不然单片机就会复位。看门狗的操作我还不会,所以就从熔丝把看门狗关了,程序运行正常。明天有时间研究看门狗去。。。

Jacob 技术 , ,

CH375 USB芯片

2007年7月17日

从沁恒电子拿来的空板和芯片,焊了一下上系统立马能用了,程序写了一些,上位机能对下位机发数据了,下位机对上位机发实现起来应该也不困难,就是上位机软件不太会写,不知道怎么用它的dll库文件,沁恒网站上好像也没有c#的实例,先放一放吧,资料过一段时间整理好了再传

Jacob 技术

各种存储器解惑

2007年4月19日

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。

举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。

Jacob 技术