博文

对特性阻抗的一种浅显易懂的解释 (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 反之,当握处之挤压不足以致射程太近者,则照样得不到想要的结果。过犹不及皆非所欲,唯有恰到好处才能正中下怀皆大欢喜。   1.4 上述简单的生活细节,正可用以说明方波(Square Wave)讯号(Signal)在多层板传输线......

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

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

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

阅读全文(4958) | 评论: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 将程序装入高端内存 ctty 改变控制设备 emm386 扩展内存管理 常用命令具体介绍: 一、Dir 显示目录文件和子目录列表,呵呵,这个当然是人人要知道的。 可以使用通配符(? 和 *),?表通配一个字符,*表通配任意字符 *.后缀 指定要查看后缀的文件。 上面其实也可以为“ . 后缀”,例如dir *.exe 等于dir .exe /p 每次显示一个列表屏幕。要查看下一屏,请按键盘上的任意键。 /w 以宽格......

阅读全文(6385) | 评论: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 start messenger----开始信使服务 notepad--------打开记事本 nslookup-------网络管理的工具向导 ntbackup-------系统备份和还原 narrator-------屏幕“讲述人” ntmsmgr.msc----移动存储管理器......

阅读全文(4630) | 评论: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 获取目前选择的鼠标指针的句柄 GetCursorPos 获取鼠标指针的当前位置 GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 GetDoub......

阅读全文(5431) | 评论: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 从指定的模块或应用程序实例中载入一幅位图 LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 LoadIcon 从指定的模块或应用程序实......

阅读全文(3964) | 评论: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 结束一个成功的打印作业 EndDocPrinter 在后台打印程序的级别指定一个文档的结束 EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 EndPagePrinter......

阅读全文(3988) | 评论: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 向窗口发送一条消息 3. API之文件处理函数 CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 Creat......

阅读全文(4061) | 评论: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();   /* round-robin execution the following tasks every 10ms */     cw();     ccw(); &nb......

阅读全文(5480) | 评论: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),通过该对象便可以对串口属性进行设置,MSComm 控件共有27个属性,这里只介绍其中几......

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