EDN首页   博客首页

最新日志

发表于:2008-11-13 17:31:29
标签:无标签

0

[转]移动硬盘上安装XP

前提条件
为了继续下面的大部分操作,需要有一台已綷-安装好Windows操纵系统的台式机。
● 一个兼容USB 2.0标准的移动存储设备。这个设备可以是移动硬盘,甚至可以是大容量闪存盘(市面上已綷-有不少容量在2GB以上的闪存盘)。如果要使用硬盘,那么这个移动硬盘可以是买来的现成产品,也可以自己用移动硬盘盒DIY。建议自己DIY,因为这样不仅便宜,而且可以使用台式机硬盘,性能可以得到保障(成品移动硬盘为了保持一定的体积,往往使用缓存小、容量小,转速低的笔记本硬盘)。另外,为了尽量避免数据传输所需的时间,移动硬盘(盒)以及主板上的USB接口最好能够工作在USB 2.0标准下。
● 一张Windows XP安装光盘。
● UltraISO或者其他可以直接编糪-ISO文件的软件。
● Microsoft Cabinet SDK:

rar

http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe
● 可以直接刻录ISO文件的光盘刻录软件。

详细操作步骤

1 首先要确认你的机器主板支持从USB启动,并且格式化好你的硬盘确认启动时XP安装程序可以找到它。

2 提取需要处理的文件
从光盘镜像的i386文件夹,并选中下列文件(按下“Ctrl”键可以多选):
● TXTSETUP.SIF
● DOSNET.INF
● USB.IN_
● USBPORT.IN_
● USBSTOR.IN_

3 提取IN_文件
运行前文中下载的Cabsdk.exe,将其中的文件释放到硬盘上(假设放在c:\cabsdk下)。然后运行“CMD”打开命令提示符窗口,并进入到c:\cabsdk\bin,按照cabarc x USBSTOR.IN_这样的格式对在上一步中提取出来的三个“.in_”文件运行cabarc命令(图3),最终你将会得到三个“.inf”文件。
● usb.inf
● usbport.inf
● usbstor.inf
这时候.IN_文件就可以全部删掉了。

4 编辑文件
TXTSETUP.SIF
这个文件是由Windows XP安装程序在最初的安装阶段载入的,在这个文件中,我们会改变Windows安装程序对USB设备的处理方法。默认情况下,安装过程中USB设备会被看作是输入设备,綷-过我们的修改,USB设备将会变成大容量存储设备(这种设备需要在使用之前被载入)。
首先,按照下面的示例处理[InputDevicesSupport.Load]和[BootBusExtenders.Load]字段(蓝色文字是新添加的内容,红色的文字是删除的内容):

[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys

接着对[BootBusExtenders]和[InputDevicesSupport]字段进行类似的处理(蓝色文字是新添加的内容,红色文字是删除的内容):

[BootBusExtenders]
pci = "PCI-Bustreiber",files.pci,pci
acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi
isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp
acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec
ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor

[InputDevicesSupport]
usbehci="Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci="Open Hostcontroller",files.usbohci,usbohci
usbuhci="Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub="Standard-USB-Hubtreiber",files.usbhub,usbhub
hidusb="HID-Parser",files.hidusb,hidusb
serial="Serial Port Driver",files.none,serial
serenum="Serial Port Enumerator",files.none,serenum
usbstor="USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp="USB Generic Parent Driver",files.usbccgp,usbccgp

随后,我们还要在注册表中写入一些键。txtsetup.sif允许你提供一些文件,这些文件将在系统安装过程中被合并到注册表中。请在[HiveInfs.Fresh]字段加入下列蓝色字的内容:

[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices

同时在[SourceDisksFiles]字段下加入下列蓝色文字内容:

[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2

最后,保存并关闭TXTSETUP.SIF,这一步工作就完成了。

DOSNET.INF
接下来打开DOSNET.INF,把第二个[Files]字段变成下面的样子(蓝色文字为新添加内容):

[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

usb.inf
编辑[StandardHub.AddService]和[CommonClassParent.AddService]字段,在其中添加下面显示的蓝色文字内容:

[StandardHub.AddService]
DisplayName=%StandardHub.SvcDesc%
ServiceType=1; SERVICE_KERNEL_DRIVER
StartType=0; SERVICE_DEMAND_START
ErrorControl=1; SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbhub.sys
LoadOrderGroup=Boot Bus Extender

[CommonClassParent.AddService]
DisplayName=%GenericParent.SvcDesc%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=0;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbccgp.sys
LoadOrderGroup=Boot Bus Extender

usbport.inf
编辑[EHCI.AddService]、[OHCI.AddService]、[UHCI.AddService]和[ROOTHUB.AddService]字段,在其中添加下面显示的蓝色文字内容:

[EHCI.AddService]
DisplayName=%EHCIMP.SvcDesc%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=0;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbehci.sys
LoadOrderGroup=Boot Bus Extender

[OHCI.AddService]
DisplayName=%OHCIMP.SvcDesc%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=0;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbohci.sys
LoadOrderGroup=Boot Bus Extender

[UHCI.AddService]
DisplayName=%UHCIMP.SvcDesc%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=0;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbuhci.sys
LoadOrderGroup=Boot Bus Extender

[ROOTHUB.AddService]
DisplayName=%ROOTHUB.SvcDesc%
ServiceType =1;SERVICE_KERNEL_DRIVER
StartType=0;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\usbhub.sys
LoadOrderGroup=Boot Bus Extender

usbstor.inf
在[USBSTOR.AddService]字段中增加/修改下列蓝色文字内容:

[USBSTOR.AddService]
DisplayName=%USBSTOR.SvcDesc%
ServiceType=1
StartType=0
Tag=3
ErrorControl=1
ServiceBinary=%12%\USBSTOR.SYS
LoadOrderGroup=Boot Bus Extender

新文件:USBBOOT.INF
在之前处理的文件所在的文件夹中新建一个名为USBBOOT.INF的文件,然后输入下列内容:

[usbservices]

HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0 HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1

5 将inf文件重新打包
如果原始的.IN_文件还没有删除,那么现在必须删掉,因为我们需要用新的文件将其替换。再次打开一个命令提示行窗口,然后进入到保存这些文件的文件夹,然后执行下列命令:

cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

这样你将能看到三个IN_文件,所有修改工作就都已经完成了。


重新装入ISO文件
用UltraISO打开你的Windows XP安装光盘镜像,进入到i386文件夹,然后从ISO文件中删除下列文件,并保存修改:
● DOSNET.INF
● TXTSETUP.SIF
● USB.IN_
● USBPORT.IN_
● USBSTOR.IN_
一定要确保所有更改都被保存到ISO文件中,在UltraISO中关闭并重新打开这个更改过的ISO文件,再次进入i386文件夹,并在“操作”菜单下选择“添加文件”命令,把你编糪-过的文件添加进去:
● USBBOOT.INF
● DOSNET.INF
● TXTSETUP.SIF
● USB.IN_
● USBPORT.IN_
● USBSTOR.IN_
保存ISO文件,主要工作完成了。

将ISO文件刻录回光盘并安装。
这样Windows就可以正常安装和使用了,在安装过程中你可能会遇到这些问题:
● 在安装驱动程序的过程中,安装程序可能会提醒你有驱动程序没有通过微软的认证,这是正常现象。我们对某些文件的修改使得文件的校验值变化了,因此驱动的数字签名也就丢失了。只要点击“依然安装”数次即可。
● 在安装完成之后,第一次启动的时候系统会报告没找到分页文件。你可以忽略这个错误,就算没有分页文件,Windows也可以正常工作。

系统分类: 软件开发   |    用户分类:    |    来源: 转贴

该用户于2008-11-13 17:36:18编辑过该文章

评论(0) | 阅读(45)
发表于:2008-9-28 13:20:48
标签:Proteus  错误  

0

Proteus 无法仿真的一些问题

1、timestep too small

关于time step too small的含义
所有SPICE仿真都有可能会出现这种问题,从数学上讲,是因为迭代运算在步长很小的迭代中都无法找到允许误差下的解。也就是SPICE的方程组不收敛。
为什么会这样呢?一方面有可能是设计上不合理,如前面有兄弟说到的问题;另一方面可能是模型设计的问题,特别是某些数字模拟混合设计,或存在开关器件时(一般开关器件不能理想化设置Ton=0就是为了避免出现这个问题)。
如何解决这个问题?需要对症下葯,一般由简到繁来处理:先检查电路设计上有没低级错误;更换器件模型(如三极管)试验;如果以上都无效,还可以尝试修改SPICE仿真参数,这个比较繁琐,最好先记录原始值,以便恢复。大体修改的思路是放宽误差容限,一般以整数量级为单位来改动。但是误差大了仿真也就不准确了。

浅论至此,欢迎指正!

系统分类: 单片机   |    用户分类: 无分类    |    来源: 整理

评论(0) | 阅读(122)
发表于:2008-8-19 11:46:20
标签:无标签

1

[转贴]一位可怜男网友的求助信

一位可怜男网友的求助信
--------------------------------------------------------------------------------

亲爱的技术顾问:   

您好!我遇到一个技术难题,急需您的帮助。最近我将《女友7.0版》升级成《老婆1.0》,结果发现升级后的软件经常会莫名其妙的出错。而且这个版本还占用了大量系统空间和资源,这在产品说明书上并没提到。还有就是《老婆1.0》自动介入其他程序,到处安装软件拷贝,并能在开机时自动启动,监视整个系统的活动。

升级到《老婆1.0版》后,我以前安装的程序,例如:《哥们饭局2.5版》、《全天橄榄球赛5.3版》再也无法启动了,一开程序就死机。我还试着使用《周六酒吧6.3版》,结果每次运行的其实是《周六逛街7.1版》。我尝试着还原到《女友7.0版》,但是光盘里找不到《老婆1.0版》的卸载程序。   

期待您的回复!   

====================================

亲爱的用户:   

您的问题非常普遍,起因是绝大多数用户对《老婆版》软件的基本性质不够了解。很多把《女友版》升级到《老婆版》的男士都以为《老婆版》只是应用和娱乐程序,其实《老婆版》是一个操作系统,其作用是控制电脑的一切事务。让《老婆版》安全地降级到《女友版》基本是不可能的,因为《老婆1.0版》的设计不准许您这样做。一旦安装,任何卸载、降级、删除对《老婆版》都不起作用。

有些用户试图安装《女友8.0 》、《情人1.0》或《老婆版更新程序》,但都引起了更多的麻烦,详情请见《使用手册》第七章“子女抚养费”和第十章“诉讼律师费”。凭我多年的经验(我自己也安装了《老婆1.0》),我建议您保留该软件,并尽最大努力克服目前的困难。如果发现错误或问题,无论原因是什么,您都必须立即运行C盘根目录下的《我很抱歉》程序,注意尽量避免使用“解释”键。某些情况下,您有必要多次运行《我很抱歉》程序,幸运的话,您的操作系统最终会恢复正常。   

虽然《老婆1.0版》是一个高成本、难维护的软件,但运行一段时间以后,您会发现安装该软件还是值得的。如果您想更充分地利用其功能,请考虑购买下列补丁程序:《鲜花2.0版》、《巧克力7.0版》和《钻石9.0版》。   

避免安装《女秘书20-25版》(尤其要避免用“超短裙”格式的那个版本),因为该系列软件和《老婆版》软件不兼容,极有可能导致系统死机。

感谢您使用我公司软件!   

顺便再说一句,如果您还没有安装《老婆1.0版》附带的免费软件《丈母娘1.0 版》,请慎重考虑是否有安装的必要 !

系统分类: 自由话题   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(79)
发表于:2008-8-19 11:45:36
标签:无标签

1

把男友升级为老公后发生的bug (搞笑) (转载)

技术负责人,您好:
  去年本人把"男友5.0"升级为"老公1.0",发现财务软件发生意外的变化,导致与在"男友5.0"版本下,运行良好的"flower"和"装饰品"应用程序的连接发生障碍。而且"老公1.0"系统删除了"浪漫9.9"等软件,并擅自把"足球11.0"或者"nba3.0"安装进去。更糟糕的是,"沟通8.0"也不象以前那样灵活,"家务2.6"子系统渐渐处于崩溃状态。我试图用"唠叨5.3"解决问题,还是没有效果。

  请告诉我如何解决此问题... --几乎绝望的用户

用户:

  请注意,"男友5.0"是娱乐版软件,但是"老公1.0"是操作系统。

  请在ms-dos方式下,输入" "c:/你现在不爱我了?"命令

  之后请安装"眼泪6.2"。

  这样,"老公1.0"可能会自动运行"内疚感3.0" 和 "flower7.0"应用程序。但是如果使用过多,"老公1.0"可能会把"沉默2.5"或者"啤酒6.1"设置为缺省程序。

  其中"啤酒6.1"有时还自动创建"打呼噜"音响文件。

  请千万不要安装"婆婆1.0"或者别的"男友"软件,这些都不会给你带来帮助,甚至有可能破坏"老公1.0"。

  总之,"老公1.0"是一个不错的系统,只是它的内存有限,所以要适应新的软件,需要一定的时间,若要提高其性能,请添加新软件,比如"好吃的饭菜3.0"。

老公1.0"听说有不少盗版哦,运行七年后,系统自动崩溃,所以也叫“七年之痒”。
我觉得不是因为盗版的问题,而是"老公1.0"只有7年的使用许可,不及时升级到2。0或以上版本就会产生和硬件的不兼容

系统分类: 自由话题   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(84)
发表于:2008-7-17 12:53:47
标签:女人  自己  

1

女人一定要对自己好一点(转)

1、女人一定要对自己好一点。一旦累死了,就别的女人花你的钱,住你的房,睡你的老公,还打你的孩子。
2、问世间情为何物?圣人答曰:“废物!”
3、我以为我颓废,原来我报废了!
4、叶子的离开,是因为风的追求还是树的不挽留?
5、你以为我会眼睁睁地看着你去送死吗?我会闭上眼睛的!
6、黑夜给了我一双黑色的眼睛,可我却用它来翻白眼。
7、网络就像是监狱,本来是偷了个钱包进来的,等出去的时候就什么都学会了。
8、兄弟如手足,女人如衣服,谁动我手足,我扒他衣服!
9、上帝把所有人都骗了,因为地狱才是最美的!佛知道真相,所以佛说:“我不入地狱,谁入地狱?”
10、看到你我连食欲都没了,还谈什么性欲?
11、天使之所以会飞,是因为她们把自己看得很轻……  
12、以后不要在我面前说英文,OK?
13、我要是妞,早爱上我了……    
14、这个世界上我只相信两个人,一个是我,另一个不是你。
15、有钱男子汉,没钱汉子难!
16、思想有多远,你就给我滚多远!
17、好好学习,天天想上!
18、流氓不可怕,就怕流氓有文化……   
19、早起的鸟儿有虫吃,早起的虫儿被鸟吃!
20、当你穿上了爱情的婚纱,我也披上了和尚的袈裟……
21、 客服就是客客气气的拒绝为你服务。
22、 时间就像乳沟,只要挤一挤总还是有的!
23、 有时解释是不必要的——敌人不信你的解释,朋友无须你的解释。
24、我为兄弟两肋插刀,为女人插兄弟两刀。
25、怀才就像怀孕,时间久了才能让人看出来。
26、 人干点好事儿总想让鬼神知道,干点坏事儿总以为鬼神不知道,我们太让鬼为难了。
27、 水能载舟,亦能煮粥!
28、骑白马的不一定是王子,可能是唐僧;有翅膀的不一定是天使,也可能是鸟人,烧香的不见得是和尚,也可能是熊猫!
29、 亲人之间,谈到钱就伤感情;情人之间,谈到感情就伤钱。
30、 上帝创造了男人是为了使他孤独,而创造女人是为了让他更孤独。
31、顾客不是上帝,顾客只是上当。
32、孩子把玩具当朋友,成人把朋友当玩具。
33、老天,你让夏天和冬天同房了吧?生出这鬼天气!
34、有钱的人怕别人知道他有钱,没钱的人怕别人知道他没钱。
35、话说出去之前你是话的主人,说出去之后你便成了话的奴隶。
36、偷一个人的主意是剽窃,偷很多人的主意就是研究。
37、装傻这事,如果干的好,叫大智若愚。木讷这事,如果干的好,叫深沉。
38、穿别人的鞋,走自己的路,让他们找去吧,
39、女人无所谓正派,正派是因为受到的引诱不够;男人无所谓忠诚,忠诚是因为背叛的筹码太低……   
40、一大学生最低奋斗目标:农妇,山泉, 有点田。

系统分类: 生活点滴   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(116)
发表于:2008-7-7 13:08:34
标签:无标签

1

[原创] Proteus之PLD初级教程

ProteusPLD初级教程

前言

Proteus在数字电路仿真中表现非常出色,虽然ProteusPLDCPLD/FPGA)支持不多,但是这并不能否认我们不对此方面有所了解,下面对Proteus中的PLD做个简单的学习。

一、PLD编程软件WinCupl简介

Proteus中,PLD器件所需要载入的文件是“.jed ”文件(就像仿真单片机所需要.HEX文件一样),而产生这样的文件,我们需要另外一种编辑环境,这就是WinCupl

WinCuplATMEL公司出品的Cupl语言的编译环境,用于PLD器件的编程,支持多种器件,包括GAL系列和ATF系列。

一般来说,ATF系列的同等级产品要必GAL的便宜,比如AFT16V8就兼容GAL16V8,可以擦写100次,价格上也便宜1块~2块,性能都差不多。

ATMEL公司的SPLD/CPLD栏目中免费下载WinCupl后,可以得到一个注册码,用这个码就可以激活WinCupl了,这个码没有使用时间的限制。

WinCupl软件包实际包括两个部分,一个是WinCupl,PLD的编译环境,一个是WinSim(相当于MAX的波形仿真部分)。

接下来我们学习如何使用这个软件。

二、编译Wincupl源文件

Cupl语言的基本结构在这里不作详细介绍,仅对其在Proteus中的PLD所需要的仿真文件产生进行介绍。下面以3-8多路选择器(相当于74LS138)为例,介绍编译Wincupl源文件并产生PLD所需要的仿真文件的具体步骤。

说明:这里我们仅用组合逻辑来实现我们的器件,达到教学目的,更加复杂器件的实现(需要使用时序逻辑)请参见其它学习文档。

1、启动WinCupl。如图1,启动完进入主界面后,单击File菜单的New,从New中单击Projet,就是新建一个工程文件(其实还是PLD文件),在弹出的对话框中,“Name”(源文件名称),填“Encoder”,其它包括“Date”(创建时间)、“Designer”(设计者名称)、“Company”(公司名称)等根据需要进行填写。这里有个特殊的地方,就是“Device”(器件名称),系统默认的是virtual,就是不针对任何具体的部件,这里我们改掉,改成g16v8a,这个关键字兼ATF16V8。如图2所示;

点击看大图

1  启动界面

2  头文件信息

2、单击OK后,系统要你输入你要用的输入引脚数,我们有六个输入端,因此填“6,如图3,单击OK按钮。

3  填写输入引脚数

3、系统要你输入要用到的输出引脚数,填“8,如图4,单击OK按钮。

4  填写输出引脚数

4、系统要你输入要使用到的中间节点数,我们不需要,填0,单击OK按钮。这样系统就建立了一个PLD文件,文件名就是ENCODER.PLD。系统将该文件显示出来了,就象下面这样:

Name     Encoder ;

PartNo   00 ;

Date     2008-4-15 ;

Revision 01 ;

Designer XIEYI ;

Company  stepservo ;

Assembly None ;

Location  0;

Device   G16V8A ;

 

/* *************** INPUT PINS *********************/

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

 

/* *************** OUTPUT PINS *********************/

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

PIN     =                         ; /*                                 */

显然,这是一个空文件,我们需要对输入、输出引脚定义,以及其中的逻辑进行填写,3-8多路选择器逻辑相对简单,这里就不啰嗦了。最后的编写后的文件如下:

Name     Encoder ;

PartNo   00 ;

Date     2008-4-15 ;

Revision 01 ;

Designer XIEYI ;

Company  stepservo ;

Assembly None ;

Location  0;

Device   G16V8A;

 

/* *************** INPUT PINS *********************/

PIN 2     =   A2                      ; /*                                 */

PIN 3     =   A1                      ; /*                                 */

PIN 4     =   A0                      ; /*                                 */

PIN 5     =   E1                      ; /*                                 */

PIN 6     =   E2                      ; /*                                 */

PIN 7     =   E3                      ; /*                                 */

 

/* *************** OUTPUT PINS *********************/

PIN 19     =   Q0                      ; /*                                */

PIN 18     =   Q1                      ; /*                                */

PIN 17     =   Q2                      ; /*                                */

PIN 16     =   Q3                      ; /*                                */

PIN 15     =   Q4                      ; /*                                */

PIN 14     =   Q5                      ; /*                                */

PIN 13     =   Q6                      ; /*                                */

PIN 12     =   Q7                      ; /*                                */

 

Q0 = !((E1)&(!E2)&(!E3)&(!A0)&(!A1)&(!A2));

Q1 = !((E1)&(!E2)&(!E3)&(!A0)&(!A1)&(A2));

Q2 = !((E1)&(!E2)&(!E3)&(!A0)&(A1)&(!A2));

Q3 = !((E1)&(!E2)&(!E3)&(!A0)&(A1)&(A2));

Q4 = !((E1)&(!E2)&(!E3)&(A0)&(!A1)&(!A2));

Q5 = !((E1)&(!E2)&(!E3)&(A0)&(!A1)&(A2));

Q6 = !((E1)&(!E2)&(!E3)&(A0)&(A1)&(!A2));

Q7 = !((E1)&(!E2)&(!E3)&(A0)&(A1)&(A2));

写好后,我们需要编译该文件。首先保存文件(怎么保存就不用我说了吧^_^),然后在“Run”菜单中,单击“Device Dependent Compile”,就是基于器件型号的编译。如果没有出现什么键入错误,都能成功编译,如图5。编译完成后,即可产生我们所需要的“.jed”文件

点击看大图

5  编译成功后

三、PLDProteus中的仿真

Proteus中的仿真步骤如下,具体方法这里也不作介绍了,如不会者,请参见一些入门教程。

1、     启动Proteus(这个好像不用多说了吧);

2、     添加以下器件:

AM16V8(这是我们所需要仿真的器件)

LED-RED