博文

对特性阻抗的一种浅显易懂的解释 (2005-09-01 20:47:00)

摘要:

作者:不详    文章来源:PCBTech    点击数:155    更新时间:2005-4-14

抽象又复杂的数位高速逻辑原理,与传输线中方波讯号的如何传送, 以及如何确保其讯号完整性(Signal Integrity),降低其杂讯(Noise)减少之误动作等专业表达,若能以简单的生活实例加以说明,而非动则搬来一堆数学公式与难懂的物理语言者,则对新手或隔行者之启迪与造福,实有事半功倍举重若轻之受用也。

  然而,众多本科专业者,甚至杏坛为师的博士教授们,不知是否尚未真正进入情况不知其所以然?亦或是刻意卖弄所知以慑服受教者则不得而知,或是二者心态兼有之!坊间大量书籍期刊文章,多半也都言不及义缺图少例,确实让人雾里看花,看懂了反倒奇怪呢!

  笔者近来获得一份有关阻抗控制的简报资料,系电性测试之专业日商HIOKI所提供。其内容堪称文要图简一看就懂,令人爱不释手。正是笔者长久以来所追求的境界,大喜之下乃征得原著“问港建”公司的同意,并经由港建公司廖丰莹副总的大力协助,以及原作者山崎浩(Hiroshi Yamazaki)及其上司金井敏彦(Toshihiko Kanai)等解惑下,得以完成此文,在此一并感谢。并欢迎所有前辈先进们,多多慨赐类似资料嘉惠学子读者,则功在业界善莫大焉。

  一 .将讯号的传输看成软管送水浇花

  1.1 数位系统之多层板讯号线(Signal Line)中,当出现方波讯号的传输时,可将之假想成为软管(hose)送水浇花。一端于手握处加压使其射出水柱,另一端接在水龙头。当握管处所施压的力道恰好,而让水柱的射程正确洒落在目标区时,则施与受两者皆欢而顺利完成使命,岂非一种得心应手的小小成就?

  1.2 然而一旦用力过度水注射程太远,不但腾空越过目标浪费水资源,甚至还可能因强力水压无处宣泄,以致往来源反弹造成软管自龙头上的挣脱!不仅任务失败横生挫折,而且还大捅纰漏满脸豆花呢!

  1.3 反之,当握处之挤压不足以致射程太近者,则照样得不到想要的结果。过犹不及皆非所欲,唯有恰到好处才能正......

阅读全文(8850) | 评论:0

阻抗匹配(2005-09-01 20:43:00)

摘要:--  关于电阻排的布线
我在高速电路中布线时,
因为两个芯片之间的距离比较远,所以头儿建议加一个电阻排,
可是听说电阻排在高速电路中布线比较讲究,说是精度比较高,
一般的必须让线等长,如果还是觉得比较远的话,就要再加电阻了

理论原因:

1串联终端
串联终端是在驱动装置的输出端串联一个终端电阻,这个电阻的位置要越靠近驱动装置的输出端越好.也就是说驱动装置的输出端与终端电阻的导线尽可能短,其目的是在于希望能让该终端电阻变成驱动装置输出阻抗的一部分,如果驱动装置与终端电阻间的导线过长,因而出现传输线效应的话,那么终端技巧的效果会大打折扣.另外为了要减少驱动装置与终端电阻的长度,终端电阻最好采用SMD技术的电阻.
2并联终端
并联终端技巧是在接收装置的输入端连接一个终端电阻(又称为上拉电阻)到一个VCC电源,被接上的电阻阻值等于导线的特性阻抗.理论上,你也可以将终端电阻改接到地端,但这样一来,TTL兼容的装置就没办法提供足够的驱动能力.
并联终端技巧最早是IBM公司提出的,故又叫IBM终端.
3戴维南终端(分离式终端技巧)
戴维南终端是采用两个终端电阻,分别连接到VCC和GND.......
4交流终端
交流终端是在接收装置的输入端接上一个并联终端电阻和一个隔离电容.来防止传输路径上的DC电流,达到减少功率消耗的目的.
5二极管终端
二极管终端较适用于线路的特性阻抗未知的环境.....
总论
依摆放终端电阻的位置,可分为两种,第一种是将终端电阻摆放在驱动装置的输出端,以串联电阻为代表,这种终端主要目的是用于两次反射.第二种是将终端电阻放在接收装置的输入端,以并联,戴维南和交流为代表,这种终端主要目的是用于一次反射.而二极管终端基本上不能称真正的终端技巧,通常在设计阶段,较少采用.总的来说,采用终端技巧改善反射现象是最经济的方法之一.但是并非毫无缺点,同时不同的逻辑家族和规格所适用的终端技巧也不一样.
......

阅读全文(4872) | 评论:0

(第一部分)-- DOS常用命令详解 (2005-08-31 20:30:00)

摘要:
****************************************************

dir 列文件名
deltree 删除目录树
cls 清屏
cd 改变当前目录
copy 拷贝文件
diskcopy 复制磁盘
del 删除文件
format 格式化磁盘
edit 文本编辑
mem 查看内存状况况
md 建立子目录
move 移动文件、改目录名
more 分屏显示
type 显示文件内容
rd 删除目录
sys 制作DOS系统盘
ren 改变文件名
xcopy 拷贝目录与文件
chkdsk 检查磁盘
attrib 设置文件属性
fdisk 硬盘分区
date 显示及修改日期
label 设置卷标
defrag 磁盘碎片整理
msd 系统检测
path 设置搜寻目录
share 文件共享
memmaker内存优化管理
help 帮助
restore 恢复备份文件
set 设置环境变量
time 显示及修改时间
tree 列目录树
debug 随机调试程序
doskey 重新调用DOS命令
prempt 设置提示符
undelete恢复被删的文件
scandisk检测、修理磁盘

不常用DOS命令:

diskcomp磁盘比较  append 设置非执行文件路径
expand 还原DOS文件 fasthelp快速显示帮助信息
fc 文件比较 interink启动服务器
setver 设置版本 intersvr启动客户机
subst 路径替换 qbasic Basic集成环境
vsafe 防病毒 unformat恢复已格式化的磁盘
ver 显示DOS版本号 smartdrv设置磁盘加速器
vol 显示磁盘卷标号 lh 将程序装入高端内存
ctt......

阅读全文(6269) | 评论:1

(第二部分)-- windows运行命令详解 (转发)(2005-08-31 20:29:00)

摘要:*********************************************************
*********************************************************


开始——运行。。。。。。大家一定很熟悉了吧,但出了PING,REGEDIT,MMC之外还还记得什么吗?那就来这儿

看看吧!
winver---------检查Windows版本
wmimgmt.msc----打开windows管理体系结构(WMI)
wupdmgr--------windows更新程序
wscript--------windows脚本宿主设置
write----------写字板
winmsd---------系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------XP自带局域网聊天

mem.exe--------显示内存使用情况
Msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mspaint--------画图板
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令

dxdiag---------检查DirectX信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开DDE共享设置
dvdplay--------DVD播放器

net stop messenger-----停止信使服务
net s......

阅读全文(4517) | 评论:1

Windows API函数大全四(转发)(2005-08-31 20:28:00)

摘要:10. API之硬件与系统函数
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
Beep 用于生成简单的声音
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
ClipCursor 将指针限制到指定区域
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
DestroyCaret 清除(破坏)一个插入符
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
EnumSystemCodePages 枚举系统中已安装或支持的代码页
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
EnumTimeFormats 枚举一个指定的地方适用的时间格式
ExitWindowsEx 退出windows,并用特定的选项重新启动
ExpandEnvironmentStrings 扩充环境字串
FreeEnvironmentStrings 翻译指定的环境字串块
GetACP 判断目前正在生效的ANSI代码页
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
GetCaretBlinkTime 判断插入符光标的闪烁频率
GetCaretPos 判断插入符的当前位置
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
GetCommandLine 获得指向当前命令行缓冲区的一个指针
GetComputerName 取得这台计算机的名称
GetCPInfo 取得与指定代码页有关的信息
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
GetCursor......

阅读全文(5345) | 评论:0

Windows API函数大全三(转发)(2005-08-31 20:27:00)

摘要:7. API之位图、图标和光栅运算函数
BitBlt 将一幅位图从一个设备场景复制到另一个
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
CreateBitmap 按照规定的格式创建一幅与设备有关位图
CreateBitmapIndirect 创建一幅与设备有关位图
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
CreateCursor 创建一个鼠标指针
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
CreateDIBSection 创建一个DIBSection
CreateIcon 创建一个图标
CreateIconIndirect 创建一个图标
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
DestroyIcon 清除图标
DrawIcon 在指定的位置画一个图标
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
GetBitmapDimensionEx 取得一幅位图的宽度和高度
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
GetIconInfo 取得与图标有关的信息
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
Loa......

阅读全文(3869) | 评论:0

Windows API函数大全二(转发)(2005-08-31 20:26:00)

摘要:4. API之打印函数
AbortDoc 取消一份文档的打印
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
AddForm 为打印机的表单列表添加一个新表单
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
AddMonitor 为系统添加一个打印机监视器
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
AddPrinter 在系统中添加一台新打印机
AddPrinterConnection 连接指定的打印机
AddPrinterDriver 为指定的系统添加一个打印驱动程序
AddPrintProcessor 为指定的系统添加一个打印处理器
AddPrintProvidor 为系统添加一个打印供应商
AdvancedDocumentProperties 启动打印机文档设置对话框
ClosePrinter 关闭一个打开的打印机对象
ConfigurePort 针对指定的端口,启动一个端口配置对话框
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
DeleteForm 从打印机可用表单列表中删除一个表单
DeleteMonitor 删除指定的打印监视器
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
DeletePrinter 将指定的打印机标志为从系统中删除
DeletePrinterConnection 删除与指定打印机的连接
DeletePrinterDriver 从系统删除一个打印机驱动程序
DeletePrintProcessor 从指定系统删除一个打印处理器
DeletePrintProvidor 从系统中删除一个打印供应商
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
DocumentProperties 打印机配置控制函数
EndDocAPI......

阅读全文(3884) | 评论:3

Windows API函数大全一(转发)(2005-08-31 20:25:00)

摘要:1. API之网络函数
WNetAddConnection 创建同一个网络资源的永久性连接
WNetAddConnection2 创建同一个网络资源的连接
WNetAddConnection3 创建同一个网络资源的连接
WNetCancelConnection 结束一个网络连接
WNetCancelConnection2 结束一个网络连接
WNetCloseEnum 结束一次枚举操作
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
WNetEnumResource 枚举网络资源
WNetGetConnection 获取本地或已连接的一个资源的网络名称
WNetGetLastError 获取网络错误的扩展错误信息
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
WNetGetUser 获取一个网络资源用以连接的名字
WNetOpenEnum 启动对网络资源进行枚举的过程

2. API之消息函数
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
PostMessage 将一条消息投递到指定窗口的消息队列
PostThreadMessage 将一条消息投递给应用程序
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
ReplyMessage 答复一个消息
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
SendMessageCallback 将一条消息发给窗口
SendMessageTimeout 向窗口发送一条消息
SendNotifyMessage 向窗口发送一条消息
......

阅读全文(3957) | 评论:0

步进电机c程序(2005-08-31 20:24:00)

摘要:*
* STEPPER.C
* sweeping stepper's rotor cw and cww 400 steps
* Copyright (c) 1999 by W.Sirichote
*/

#include c:\mc51\8051io.h  /* include i/o header file */
#include c:\mc51\8051reg.h

register unsigned char j,flag1,temp;
register unsigned int cw_n,ccw_n;

unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90}
#define n 400

/* flag1 mask byte
   0x01  run cw()
   0x02  run ccw()
*/

main()

{
  flag1=0;
  serinit(9600);
  disable();  /* no need timer interrupt */
  cw_n = n;    /* initial step number for cw */
  flag1 |=0x01; /* initial enable cw() */

while(1){  
  {
    tick_wait();  /* wait for 10ms elapsed */

    energize(); &nb......

阅读全文(5393) | 评论:1

用VC 6.0实现串行通信的三种方法 (2005-08-31 20:21:00)

摘要:
中国科学院 王颖
---- 摘要: 本文介绍了在Windows平台下串行通信的实现机制,讨论了根据不同的条件用Visual C++ 设计串行通信程序的三种方法,并结合实际,实现对温度数据的接收监控。
---- 在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。
---- 在光学镜片镀膜工艺中,用单片机进行多路温度数据采集控制,采集结果以串行方式进入主机,每隔10S向主机发送一次采样数据,主机向单片机发送相关的控制命令,实现串行数据接收,处理,记录,显示,实时绘制曲线。串行通信程序开发环境为 VC++ 6.0。
---- Windows下串行通信
---- 与以往DOS下串行通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传递。串行口在Win 32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win 32 提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。与通信设备相关的结构有COMMCONFIG ,COMMPROP,COMMTIMEOUTS,COMSTAT,DCB,MODEMDEVCAPS,MODEMSETTINGS共7个,与通信有关的Windows API函数共有26个,详细说明可参考MSDN帮助文件。以下将结合实例,给出实现串行通信的三种方法。
---- 实现串行通信的三种方法
---- 方法一:使用VC++提供的串行通信控件MSComm 首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project --> Add to Project --> Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对 Windows 通讯驱动程序的 API 函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。
---- 在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可......

阅读全文(3301) | 评论:0