EDN首页   博客首页 用户登陆  |  注册
aaa
发表于 2010/2/7 11:03:31

0

关于投票

STC单片机的新版ISP协议 [网友探讨]


        先说下缘由,有一个网友给我邮件想询问STC的新版ISP协议详情,大家也知道,我已有好久都没使用过STC的芯片,手头也没有新的片子,自然也不太了解STC的新版ISP协议啦,所以在此借问各位爱好者,如果有更清楚的,请与该网友共同探讨,这就是我的初衷!联系方式请站内信或邮件walt_chen#163.com索取。青藤门客播报站


以下基本为邮件原述:

该网友在DIY一个STC的智能点的脱机下载器,在ISP协议这遇到了困难,使用的芯片是   STC11L04E(固件版本6.4K)下载过程截取的数据进行了一下分析 发现一些疑问 如下:

1 关于 包长的计算
博客中说Length:是包头区,包长区,数据区的总长度 
我在对截取的数据中对比 发现我这个版本的协议   数据长度 是  包括了  包头 包长  数据  校验 和  包尾的总长度
 

46    B9   68    00    39    50    0F   1A   0F   1A   0F   54    0F   1C   0F   1C  

0F   1B   0F   54    0F   1B   63    4B   00    E2   A4   8C   BE   7F   F7   FF  

FF   FF   00    00    00    00    00    00    00    00    00    00    00    00    00    00   

00    53    DF   E2   00    57    CF   40    0E   1E   16   
 
46    B9   6A   00    0C   8E   C0   F3   3F   1A   28    03    38    16
 
46    B9   68    00    07    8F   00    FE   16
 
2 校验和Checksum:
校验和Checksum:仅计算包头区,包长区,数据区
我根据截取的数据发现这个版本的  校验和 要计算 除了 倒数第三个字节不用计算 其余的数据全部要算在内才行
 
3 如何读取 和改写 芯片的配置
这一点在您的博客里面没有详细说明 我自己分析了好几天 只确定了 最后三个字节是表示内部RC电路 的频率 数据开头的几个字节和单片机使用的时钟有关系但没有确定
点击看大图


基本内容如上, 如有共同爱好的网友,请联系我,我转告其联系方式。谢谢大家对本博的支持。[青藤门客播报站
 

系统分类: 单片机  |  用户分类: 嵌入式  |  标签: STC ISP 新版协议 配置  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(443) | 回复(0)

发表于 2009/11/26 13:53:45

0

关于投票

黑盒分析协议

工程中常有这样的事,想分析下产品中的协议,以便兼容。

如早期的SANYO-CDC协议,一般小点的公司都拿不到文档,

于是乎就出现了许多来解析协议及时序的,

借助的工具无外于示波器、逻辑分析仪等。

用另一种说法,其实就是逆向工程,

最近这两天又干了把这个,干得还算顺当。

回头想想,做这些,其实是要靠一部分运气的,当然经验及对产品的认真也是非常重要的。

贴个图吧,仅算是个日志记录。呵呵。

用手机拍的,还算清晰吧。

系统分类: 嵌入式  |  用户分类: 嵌入式  |  标签: 黑盒分析 逆向工程  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(400) | 回复(0)

发表于 2009/10/29 22:12:27

2

关于投票

STM32最小系统上运行的FreeRTOS源码 [可下载]

现在STM32越来越普及,快成入门首选了,walnutcy

有不少网友问我要去年弄的那个最小系统上跑的FreeRTOS,

一直没有答复,东西不好找,换了城市,换了工作,更是换了个人电脑硬盘,很多东西都还是当时存了备份,新工作中不占使用这些,都忘掉放在哪了。walnutcy

http://space.ednchina.com/upload/2009/10/29/dd61e273-f114-4935-827c-7a349cca8ffb.rarwalnutcy

晚上没事,把旧硬盘找出来,最后翻出了这个最简单的版本。

目录结构如下图所示:walnutcy

walnutcy

其只需要连接一个串口,内部使用freertos运行了三个任务,

主要是做做测试,其中有一个任务实现了简单的shell控制台功能。任务创建如下所示:walnutcy

 // Walter 20080816walnutcy
 xTaskCreate( vComTxTask1, ( signed portCHAR * ) "task 1", comSTACK_SIZE, NULL, 2, ( xTaskHandle * ) NULL );walnutcy
 xTaskCreate( vComTxTask2, ( signed portCHAR * ) "task 2", comSTACK_SIZE, NULL, 1, ( xTaskHandle * ) NULL );walnutcy
 xTaskCreate( vTaskComConsole, ( signed portCHAR * ) "COMConsole", 256, NULL,tskIDLE_PRIORITY , ( xTaskHandle * ) NULL );walnutcy

另一点,当时为了个人使用方便,只留下了最简单的OS代码,目录结构与标准的有小变动,这点请大家见谅。walnutcy

同时该系统演示了如何使用信号量来共享设备,如下walnutcy

void consolePutString(char *str)walnutcy
{
    if(uartMutexHandle!=NULL)walnutcy
    {walnutcy
        if(xQueueTakeMutexRecursive(uartMutexHandle,(portTickType)10)==pdTRUE)
        {walnutcy
         while(*str)walnutcy
          UartxPutCh(*str++);walnutcy
         xQueueGiveMutexRecursive(uartMutexHandle);walnutcy
        }     walnutcy
   }walnutcy
}
walnutcy

串口采用了队列缓存机制,初学都也可以学习了解一下。

if( USART_GetITStatus( USARTx, USART_IT_RXNE ) == SET )
 {
  tmp = USART_ReceiveData(USARTx) & 0xFF;
  uartx_rxBuffer[uartx_rxIndexIn++] = tmp;
  if (uartx_rxIndexIn>=_MAX_UART_BUFFER_LEN) uartx_rxIndexIn=0;
 }
 

对串口部分重新配置下,应该就可以在三合的那个小板上运行了。walnutcy

 

系统分类: 嵌入式  |  用户分类: 嵌入式  |  标签: stm32 freertos 队列 最小系统 shell  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(675) | 回复(1)

发表于 2009/10/21 15:42:11

2

关于投票

WAV 语音的音量调节

简单的嵌入式设备上,语音播放多用DA或PWM生成,walnutcy

对于音量调节,一般都可以通过对幅度进行压缩直接软件更改。walnutcy

这里就讲一讲基本的思想。walnutcy

第1幅图,原始的16位语音波形图walnutcy

点击看大图

经8位抽样后,得到的图如下:walnutcy

点击看大图

再对幅度压缩,直接减半,则声强减少3dB。得到的波形图如下所示:walnutcy

点击看大图

 

另一个问题:为什么直接减半是3dB?walnutcy

声强公式 10*log(I / I0),减半由公式即可算出为3dB.walnutcy

由此也可以看到为什么简单的音效芯片中dB的增加幅度为1.5dB,即3/4.walnutcy

其无浮点运算而已。如PT2313,PT2318,没记错的话,变化即为1.5dB.walnutcy

 

系统分类: 嵌入式  |  用户分类: 嵌入式  |  标签: WAV 语音 音量 调节  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(449) | 回复(1)

发表于 2009/10/20 10:56:01

1

关于投票

matlab文件操作及读txt文件

matlab文件操作

文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭
1)打开文件
在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
?      ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
?      ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
?      ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
?      ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
?      ‘a’:在打开的文件末端添加数据。文件不存在则创建。
?      ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件
文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为:
sta=fclose(fid)
说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid="fopen"('d:\test.bin','wb')   %以二进制数据写入方式打开文件
fid =
  3           %其值大于0,表示打开成功
>> fwrite(fid,a,'double')
ans =
  9           %表示写入了9个数据
>> fclose(fid)
ans =        
  0           %表示关闭成功
2)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:
[A,COUNT]=fread(fid,size,precision)
说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。
3、文本文件的读写操作
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:
[A,COUNT]=fscanf(fid,format,size)
说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
fprintf(fid,format,A)
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
>> a='string';
>> fid="fopen"('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>> fid1=fopen('d:\char1.txt','rt');
>> fid1=fopen('d:\char1.txt','rt');
>> b="fscanf"(fid1,'%s')
b =
string

matlab读txt文件

fid=fopen('fx.txt','r');
%得到文件号
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件号1的数据读到f中。其中f是[12 90]的矩阵
%这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)

系统分类: 软件开发  |  用户分类: 嵌入式  |  标签: matlab 文件 读写  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(352) | 回复(0)

发表于 2009/10/13 21:06:59

1

关于投票

旧集问题(3):STC单片机的ISP功能解密 应用

这个东西是一网友完成的,收集过来。源自OURAVR

完成的作者: suaige 剩鱼片  ouravr 论坛

哈哈,用“青藤门客播报站”博主:walnutcy,提供的isp反汇编文件ispcode,成功的把mpc82e54AE2,烧录成了“stc12LE4052AD芯片。
原帖地址:

1最早的说明贴:谈宏晶STC单片机的ISP功能 (芯片保密性) 原创
http://blog.ednchina.com/walnutcy/143061/message.aspx#

2其次的发布txt文件:宏晶STC单片机的ISP的BIN文件 (芯片保密性) 原创
http://blog.ednchina.com/walnutcy/169688/message.aspx#

3发布的反汇编文件:STC芯片的3.7版ISP反汇编 芯片解密
http://blog.ednchina.com/walnutcy/194620/message.aspx

下面就是我把反asm做回去bin文件,用“并行编程器”烧录的mpc82e54AE2里面,居然可以用STC-ISP。exe烧录了,型号是stc12LE4052AD,哈哈哈哈

stc ispcodehttp://space.ednchina.com/upload/2009/10/13/69c2b43d-d8e5-447e-baa3-a4ab459d4b3f.rar(原文件名:stc_ispcode.rar) 
mpc 串口ispcodehttp://space.ednchina.com/upload/2009/10/13/e77f220f-e2b6-4462-ba07-2653c321d40c.rar (原文件名:ISP_by_COM_v1.00.rar) 

顺便上传整个html和文件工程包,有兴趣,自己研究下:
整个包http://space.ednchina.com/upload/2009/10/13/515a16a7-f719-4824-98e7-ce04cec656fe.rar(原文件名:宏晶STC单片机的ispcode文件(青藤门).rar) 


 suaige 剩鱼片:谁知道分析一下,哪里修改ispcode的芯片型号??????????、
毕竟stc12c5412ad 是dip28脚的,当做用12LE4052AD用,只有8bitAD了,

skoo :楼主,芯片型号不在ISP程序里。保持在未公开的存储区里,这个存储区无法用MCU指令读写,只能用脱机方式未公开的特定时序来改写。

suaige 剩鱼片: to楼上,

我看你的说法,不对!
因为我把ispcode烧录到:mpc82e52(stcX052全系列),mpc82e54(stc54xx全系列),还是stc89c58、516,
甚至烧录到MPC82g516里面,
用stc-ISP软件都是识别成:stc12LE4052AD,!!!那说明,型号就包含在ispcode里面,只是没找到地方,asm跳来跳去,头晕。
另外推荐个stc下载数据流的基本解释:
/////////////////////////////////////////////////////////////////////////
 sunke_76 发表于 2007-2-26 20:34 侃单片机 ←返回版面    
3楼: stc下载协议(第一季) 
点击下载后,计算机会不停的发"7F 7F",单片机接受后会回发
46 B9 68 00 21 00 0C 27 0C 26 0C 26 0C 27 0C 27 0C 27 0C 28 0C 27 34 
头部             |内部晶振频率                                   |3.4e
45 00 F3 14 82   FD FF FF FF FF 1B 16 
         4krom  |内部晶振      |校验位和结束
哪位朋友可以解答一下内部晶振频率是如何提取出来的? 
 xufujun 发表于 2008-5-6 12:43 侃单片机 ←返回版面    
8楼: 连续8次返回定时器测量得到的7bit高电平的长度 
0C 27 0C 26 0C 26 0C 27 0C 27 0C 27 0C 28 0C 27
连续8次返回定时器测量得到的7bit高电平的长度,
此时波特率是1200bps根据这些就可以计算晶振频率,
另外stc上位机软件的算法其实不太准确。 


flyhouse 丷_丷:  。。。。stc-isp软件,看来是只识别mcu里面的ispcode来区分型号而已。

是根据波特率计算晶振频率的,因为它显示的频率总有一点误差。

warmonkey : 有一种变通的方法改型号,就是在上位机查询型号时,发送预先设定的数据,而不是读取型号区的数据

yefeng3309: 通过修改BIN文件确实是可以更改型号的,不过STC12LE4052AD的BIN只能修改成STC12LE4XXX以及STC12C4XXX系列的,修改成STC12X5XXX系列的上位机能够识别MCU的型号,但ISP不能完成。另外,BIN文件只能烧到MPC82E54里才能正常ISP,烧到MPC82E52里是没反应的。

系统分类: 自由话题  |  用户分类: 嵌入式  |  标签: STC ISP  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(627) | 回复(4)

发表于 2009/10/13 20:45:10

1

关于投票

旧集问题(2):按键检测

现在看,按键检测,AD或IO,流程一样。

新闻出处:21ic 发布时间: 2007-09-13

walnutcy 发布于 2007-9-4 22:10:00
见过好多按键扫描,全是SWITCH结构,看得头大,
后来花时间做了一种矩阵式按键扫描,
这里讲讲算法,不添加代码,是为了让各位朋友自己动手,体验一把,
当然希望朋友们能有更好的算法提出,这里仅起一个抛砖引一玉的作用,
:定时采样,将按键分为7种状态:
无键按下/按键按下/短按/长按/长按连发/长按抬起,
处用多次采样计数来区别各个状态,
然后做一个矩阵表,以按键电压和按键状态为两轴,
根据按键状态发消息到消息队列即可.
当然在发到消息队列前也可根据当前系统状态转换消息,,
这种按键的优缺点在于:
代码紧凑,容易理解,维护简单,
但发出的消息与系统当前任务无关,只能靠发消息前转换得到,
偶曾用此办法实现好几款机的按键,,效果不错,


walnutcy 发布于 2007-9-5 8:51:00
3楼: 你这和AD扫键有什么关系吗...

回:
  比如有两排按键,每排10个按键,就可以做一个10*6的矩阵存储要发送的消息,
然后根据多次扫描得到的按键状态查表发消息,,
呵呵,,

5楼: 这个键盘扫描部分在我的ARM 00 OS里面就有现成的源代码拉
圈圈的这份代码没看过,呵呵,,有空去欣赏一下,谢过先...


gyt 发布于 2007-9-5 10:49:00
还是没有回答3楼的问题啊


walnutcy 发布于 2007-9-5 21:23:00
7楼: 看了6楼的回答

还是没有回答3楼的问题啊

////////////////////////////////////////////////////////////

这个见第一帖:

然后做一个矩阵表,以按键电压和按键状态为两轴,........
.............

再说说吧,
比如30ms定时采样AD口,,得到AD电压,然后通过硬件参数转换得到在当前AD口对应的第几个按键,多次采样用来判断状态,,进行状态转换,是否按下,抬起,长按等等.


比如我的判断条件是:连检到两次(AD电压在某一个按键电压附近)表示按下,1秒内(即33次)AD电压变动,则认为抬起,发短按消息,
依次类推,时间可以自己设定...

按键检测时还可以加上去抖效果,,就像按键按下时是检两次以确让按下一样,去掉用户按下或抬起时引起的按键电压不稳....

////////////////////////////////////////////////////////////


gyt 发布于 2007-9-6 10:40:00
3楼的意思是说,这样做法和AD没什么关系。

用普通的键,也是一样的做法。


saystar 发布于 2007-9-6 16:48:00
AD scan key 很大程度上要依赖硬件环境,我做过一款同样是AD scankey 以PWM输出给电阻电容组成的网络(其实很简单的电路而已),然后AD电压得知key value.主要目的是节约IO资源(2/3个IO可以检测八九个key,理论上还可以扩展)而不是LZ的为算法.至于算法,纯粹是个人爱好,Switch结构性好可读性强,对于复杂的按键逻辑来说是有好处的,至少后面人看程序要清晰很多.当然,消息队列(对OS系统)或者查表法(对简单逻辑)也可以,在算法上来说各有所长.


古道热肠 发布于 2007-9-7 11:43:00
用定时器触发检测,类似于ucOSII中的任务,再用消息机制,便于挖崛出CPU的潜能。


walnutcy 发布于 2007-9-8 12:09:00
不过没用uCOS-II,没有那么多资源,
是祼奔的,呵呵,

借鉴了多任务的思想.


sodwell 发布于 2007-9-8 21:18:00
不要什么都用uc/os  !一般来说,那玩意实际意思不大,当然也肯定有用它的产品


农民讲习所 发布于 2007-9-13 7:15:00
AD方式也支持,因为外部提供扫描码.

已经把什么长按键短按键处理都标准化了.

系统分类: 嵌入式  |  用户分类: 嵌入式  |  标签: 按键检测 AD IO 21ic  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(390) | 回复(0)

发表于 2009/10/12 23:35:55

0

关于投票

详细讲解矩阵求逆的快速算法 转载

矩阵求逆在3D程序中很常见,主要应用于求Billboard矩阵。按照定义的计算方法乘法运算,严重影响了性能。在需要大量Billboard矩阵运算时,矩阵求逆的优化能极大提高性能。这里要介绍的矩阵求逆算法称为全选主元高斯-约旦法。
  高斯-约旦法(全选主元)求逆的步骤如下:
  首先,对于 k 从 0 到 n - 1 作如下几步:
  从第 k 行、第 k 列开始的右下角子阵中选取绝对值最大的元素,并记住次元素所在的行号和列号,在通过行交换和列交换将它交换到主元素位置上。这一步称为全选主元。
  m(k, k) = 1 / m(k, k)
  m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k
  m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k
  m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k
  最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复的原则如下:在全选主元过程中,先交换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。
  实现(4阶矩阵)
float Inverse(CLAYMATRIX& mOut, const CLAYMATRIX& rhs)
{
  CLAYMATRIX m(rhs);
  DWORD is[4];
  DWORD js[4];
  float fDet = 1.0f;
  int f = 1;
  for (int k = 0; k
  {
        // 第一步,全选主元
       float fMax = 0.0f;
       for (DWORD i = k; i
       {
           for (DWORD j = k; j
           {
                const float f = Abs(m(i, j));
                if (f fMax)
               {
                     fMax= f;
                     is[k]= i;
                     js[k]= j;
              }
         }
  }
  if (Abs(fMax)   return 0;
  if (is[k] != k)
  {
        f = -f;
        swap(m(k, 0), m(is[k], 0));
        swap(m(k, 1), m(is[k], 1));
        swap(m(k, 2), m(is[k], 2));
        swap(m(k, 3), m(is[k], 3));
  }
  if (js[k] != k)
  {
        f = -f;
        swap(m(0, k), m(0, js[k]));
        swap(m(1, k), m(1, js[k]));
        swap(m(2, k), m(2, js[k]));
        swap(m(3, k), m(3, js[k]));
  }
  // 计算行列值
  fDet *= m(k, k);
  // 计算逆矩阵
  // 第二步
  m(k, k) = 1.0f / m(k, k);
  // 第三步
  for (DWORD j = 0; j
  {
       if (j != k)
            m(k, j) *= m(k, k);
  }
  // 第四步
  for (DWORD i = 0; i
  {
       if (i != k)
      {
           for(j = 0; j
           {
                  if (j != k)
                      m(i, j) = m(i, j) - m(i, k) * m(k, j);
           }
      }
   }
  // 第五步
  for (i = 0; i
  {
       if (i != k)
           m(i, k) *= -m(k, k);
  }
  }
  for(k = 3; k = 0; k --)
  {
      if (js[k] != k)
     {
          swap(m(k, 0), m(js[k], 0));
          swap(m(k, 1), m(js[k], 1));
          swap(m(k, 2), m(js[k], 2));
          swap(m(k, 3), m(js[k], 3));
    }
   if (is[k] != k)
   {
          swap(m(0, k), m(0, is[k]));
          swap(m(1, k), m(1, is[k]));
          swap(m(2, k), m(2, is[k]));
          swap(m(3, k), m(3, is[k]));
   }
  }
  mOut = m;
  return fDet * f;
}

系统分类: 软件开发  |  用户分类: 嵌入式  |  标签: 矩阵求逆 算法 全选主元高斯-约旦法。  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(276) | 回复(0)

发表于 2009/9/28 8:55:52

0

关于投票

ASCII码对照表

ASCII码对照表

下表列出了字符集中的 0 - 127。

代码 字符 代码 字符 代码 字符 代码 字符
0   32 [空格] 64 @ 96 `
1   33 ! 65 A 97 a
2   34 " 66 B 98 b
3   35 # 67 C 99 c
4   36 $ 68 D 100 d
5   37 % 69 E 101 e
6   38 & 70 F 102 f
7   39 ' 71 G 103 g
8 ** 40 ( 72 H 104 h
9 ** 41 ) 73 I 105 i
10 ** 42 * 74 J 106 j
11   43 + 75 K 107 k
12   44 , 76 L 108 l
13 ** 45 - 77 M 109 m
14   46 . 78 N 110 n
15 ? 47 / 79 O 111 o
16 ? 48 0 80 P 112 p
17 ? 49 1 81 Q 113 q
18 ? 50 2 82 R 114 r
19  51 3 83 S 115 s
20  52 4 84 T 116 t
21  53 5 85 U 117 u
22 ? 54 6 86 V 118 v
23 ? 55 7 87 W 119 w
24 ? 56 8 88 X 120 x
25 ? 57 9 89 Y 121 y
26 ? 58 : 90 Z 122 z
27  59 ; 91 [ 123 {
28 ? 60 < 92 \ 124 |
29 ? 61 = 93 ] 125 }
30 - 62 > 94 ^ 126 ~
31   63 ? 95 _ 127 ?

下表列出了字符集中的 128 - 255。

代码 字符 代码 字符 代码 字符 代码 字符
128 160 [空格] 192 à 224 à
129 ? 161 ? 193 á 225 á
130 ? 162 194 ? 226 a
131 ? 163 195 ? 227 ?
132 ? 164 ¤ 196 ? 228 ?
133 165 197 ? 229 ?
134 ? 166 | 198 ? 230 ?
135 ? 167 § 199 ? 231 ?
136 ? 168 ¨ 200 è 231 ?
137 169 ? 201 é 232 è
138 ? 170 a 202 ê 233 é
139 ? 171 ? 203 ? 234 ê
140 ? 172 ? 204 ì 235 ?
141 ? 173 ­ 205 í 236 ì
142 ? 174 ? 206 ? 237 í
143 ? 175 ˉ 207 ? 238 ?
144 ? 176 ° 208 D 239 ?
145 177 ± 209 ? 240 e
146 178 2 210 ò 241 ?
147 179 3 211 ó 242 ò
148 180 212 ? 243 ó
149 ? 181 μ 213 ? 244 ?
150 182 ? 214 ? 245 ?
151 183 · 215 × 246 ?
152 ? 184 ? 216 ? 247 ÷
153 ? 185 1 217 ù 248 ?
154 ? 186 o 218 ú 249 ù
155 ? 187 ? 219 ? 250 ú
156 ? 188 ? 220 ü 251 ?
157 ? 189 ? 221 Y 252 ü
158 ? 190 ? 222 T 253 y
159 ? 191 ? 223 ? 254 t

** 数值 8、9、10 和 13 可以分别转换为退格符、制表符、换行符和回车符。这些字符都没有图形表示,但是对于不同的应用程序,这些字符可能会影响文本的显示效果。

"空" 表示在当前平台上不支持的字符。

系统分类: 软件开发  |  用户分类: 嵌入式  |  标签: ASCII码 对照表  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(241) | 回复(0)

发表于 2009/9/3 15:16:17

0

关于投票

TI的DSP系列分类 [整理]

     自1982年推出第一款DSP后,德州仪器公司(Texas Instrument简称TI)不断推陈出新、完善开发环境,以其雄厚的实力在业界得到50%左右的市场份额。TI的DSP经过完善的测试出厂时,都是以 TMS320为前缀。

       在众多款型DSP中,TI把市场销量好和前景看好的DSP归为三大系列而大力推广,TI也称之为三个平台(Platform):C2000,C5000,C6000.

对于TI的DSP系列产品介绍如下:

1) C5000系列(定点、低功耗):C54XX,C55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。处理速度在80MIPS-- 400MIPS之间。C54XX和C55XX 一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用 SDRAM,而C54XX则不能直接使用。

2)C2000系列(定点、控制器):C20X,F20X,F24X, F24XX,C28X,F28XX该系列芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM发生器、数字IO脚等。是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。

3)C6000 系列:C62XX,C67XX,C64XX 该系列以高性能著称,最适合宽带网络和数字影像应用。32bit,其中:C62XX和C64XX是定点系列,C67XX 是浮点系列。该系列提供EMIF扩展存储器接口。该系列只提供BGA封装,只能制作多层PCB。且功耗较大。

4)C3X系列:浮点系列,非主流产品,VC33仍在广泛使用,但其速度较低,最高在150MIPS,但功耗较低。

5)OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP 的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。

6)Davinci:TMS320DM644x 架构是一款高度集成的片上系统 (SoC),集成了数字视频所需的许多外部组件。DM644x 器件建立在 TI 性能卓越的 TMS320C64x+&#8482; DSP 内核基础之上,ARM926 处理器、视频加速器、网络外设及外部存储器/存储设备接口等都专门为视频功能进行了调节。TMS320DM6443 针对视频编码及解码应用进行了调优,可提供数字视频解码所需要的全部组件,包括带集成式图像缩放工具及画中画 (OSD) 引擎的模拟及数字视频输出。TMS320DM6446 则特别适合视频编码与解码,其专门的视频处理前端添加了视频编码功能,能够捕获各种数字视频格式。其主要应用为网络照相机、机顶盒、视频电话、医疗成像等。

其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列:C30,C31,C32 C2X和C5X系列:C20,C25,C50

每个系列的DSP都有其主要应用领域。

系统分类: DSP  |  用户分类: 嵌入式  |  标签: TI DSP 系列分类 C6000 C5000  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(334) | 回复(0)

发表于 2009/9/3 14:59:29

0

关于投票

ADI DSP开发相关知识介绍 [转]

ADI DSP开发相关知识介绍
转自:http://www.eetzone.com/html/85/n-785.html

1.什么是ADI DSP,有什么特点,有些什么型号?

ADI的全称是Analog Device Inc(美国模拟器件有限公司)。ADI DSP是美国模拟器件公司推出的dsp的统称,相对与ti公司的dsp系列,具有内部mem较大,多片协同工作能力强等优点,具体可查阅ADI公司http://www.analog.com

主要有以下几个系列的DSP:

a)21xx系列:16位定点dsp,主要以218x和219x系列为代表,性能优异,内部RAM大,外围接口多,适合作为控制类芯片使用,其中219x系列性能更高。

b)SHARC系列:32位浮点dsp,包括前期的2106x系列,和目前的主力21160,21161系列,提供与大内存容量结合的简单浮点算法,具有高水平的浮点性能。

c)TigerSHARC系列:从SHARC系列发展而来,比SHARC具有更高的浮点运算功能,目前有TS101,TS201两个系列。

d)blackfin系列:ADI最新推出的一款dsp,是高性能16位DSP信号处理能力与通用微控制器使用方便的性能结合。主要型号有BF531,BF532,BF533,BF535等型号。

除此外还有21065是一种混合DSP,可以作为32bit的定点运算,也可以设定作为32bit或是40bit的浮点运算。


2.如何进行ADI DSP的开发工作?

需要建立一套开发环境:(软件VISUAL DSP++) + (仿真器) + 目标板(或评估板).若只进行算法开发,有visual dsp集成开发环境即可。以上一套ADI开发工具公司高校计划的优惠价为$1200。还有单独USB方式的仿真器现在对于国内的优惠价格是$750(美金)。

 

 3.ADI DSP的软件集成开发环境如何?

集成开发环境visual dsp++.目前已发展到3.5版本.针对不同系列dsp,visual dsp都有相应的软件,均可在ADI网站www.analog.com上下载得到。在网站上可申请testdriver(测试版)的serial number(该系列号以TST打头),可以使用90天试用期。90天后需要重新安装系统。 关于serial number 有几种:

tst打头的: 是测试版的系列号,一般可以使用30天、60天、90天、255天等几种;

adi打头的:是正版系列号,可以用这个号码最终到ADI网站进行注册,一般一个号码仅可以在一台电脑上运行的。

kit打头的: 是适用于用于评估芯片的评估板的系列号,在应用时对于芯片的内存等方面有一些限制。

注意:当你拿到testdriver的序列号时,先将系统时间改到n年以后,注册,最后再把时间改回来,这样就可以使用较长的一段时间了。ADI公司得Visual DSP++软件在设计上进行了加密,据相关人士介绍,总共在硬盘上进行7处加密,一般情况下,很难被破解。

 

4.ADI DSP的硬件开发环境如何?

仿真器:仿真器的功能是实现代码下载到目标板的dsp中,在线调试,断点,观察mem,REG等,是DSP开发中不可缺少的东西。目前ADI的仿真器在国内没有第三方开发,只能购买原装的,优点是质量可以得到保证,但一旦仿真器损坏,返修会耗费较长的一段时间。ADI得开发工具有集中型号的:PCI板卡方式的、USB方式的。评估板:每种DSP系列都有对应的评估板,评估板的原理图可以称为该款dsp硬件设计的典范,可以根据该评估 板的设计原理图进行设计,很多地方可以完全照搬,真的很方便。拥有评估板可以使新手更快地掌握该型号的DSP。

 

5.如何得到ADSP开发的相关资料?

针对dsp芯片:每款dsp都有硬件手册和指令集,建议开发者详细阅读。针对visual dsp开发环境:如果有购买正版软件,将有一些关于visual dsp的assembly,compiler,linker,loader的书籍附送,建议详细阅读。该资料都可以从adi网站上下载到pdf文档。

针对硬件开发:每款dsp对应评估板的原理图是绝对值得参考的,在评估板附带的光盘或adi网站上有评估板的说明书。另外硬件手册也需要吃透。其他:www.analog.com上有Technical Library模块,是非常好的参考资料。

 

6.如何高效地进行ADSP的开发工作?

a)仔细阅读硬件手册和指令集

b)查阅adi网站上的Technical Library模块,其中的application notes和code examples很有用

c)咨询代理商或adi技术支持

d)在dsptech版面上发文询问

e)在google的comp.dsp模块求助,老外有很多做adsp的,相对国内要少得多。

系统分类: DSP  |  用户分类: 嵌入式  |  标签: ADI DSP 开发 介绍 分类  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(274) | 回复(0)

发表于 2009/8/19 12:51:37

0

关于投票

Group delay & Phase delay [整理]

Group Delay 群延迟

Phase  Delay 相位延迟

两个不同的概念,但都是指延迟时间。延迟故名思义就是信号从进入系统到从系统出来时的延迟。好比龙头上接了一根皮管,你拧开龙头,皮管那头水不会立马出来,而是要等上一段时间,这就是延迟。

相位延迟指的单频信号的延迟,比如sin(wt)输入,经过系统之后为sin(wt-T), 相位延迟为-T/w.

群延迟指一个频率群延迟,表示一个频率群那就只能用函数了,所以表示为D(w)=-dT(w)/dw.

一个信号通过一个系统之后,如果要不失真,那么D(w)必须是常数,也就是每个频率分量的延迟时间都要是一样的。

 

 

系统分类: 通信网络  |  用户分类: 嵌入式  |  标签: group delay phase delay 群延迟  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(370) | 回复(0)

发表于 2009/8/10 10:11:19

0

关于投票

相关器专题

什么是相关器?

        相关接收就是利用信号的相关特性将有用信号从干扰和噪声中提取出来。码分多址系统购信号是宽带信号,而其中噪声和干扰的功率远远大于信号功率,因此在模拟系统中是无法接收的。但 CDMA 接收中利用地址码的相关特性进行解扩,从噪声中提取信息,此过程也就是相关接收。
  相关器可由各种网络实现,匹配滤波器是人们经常采用的一种方法,它使有用信号匹配输出,而干扰和噪声由于不匹配而抑制,得到最大的信噪比。
匹配滤波器是一种无源相关技术,它可以快速实现相关器的功能。

匹配滤波器

  指滤波器的性能与信号的特性取得某种一致,使滤波器输出端的信号瞬时功率与噪声平均功率的比值最大。
  即当信号与噪声同时进入滤波器时,它使信号成分在某一瞬间出现尖峰值,而噪声成分受到抑制。
  对最佳线性滤波器的设计有两种准则:
  一种是使滤波器输出的信号波形与发送信号波形之间的均方误差最小,由此而导出的最佳线性滤波器称为维纳滤波器;
  另一种是使滤波器输出信噪比在某一特定时刻达到最大,由此而导出的最佳线性滤波器称为匹配滤波器。
  在数字通信中,匹配滤波器具有更广泛的应用。

在网上常见的GPS相关器是:GP2021是一个12信道的C/A码基带相关器

系统分类: 接口电路  |  用户分类: 嵌入式  |  标签: 相关器  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(357) | 回复(0)

发表于 2009/8/8 11:55:30

0

关于投票

新鲜的韭菜地

回了趟家,好久没写了。给上个小菜, 新鲜的韭菜, 做法自定,充分发挥想像力。
点击看大图

系统分类: 生活点滴  |  用户分类: 嵌入式  |  标签: 韭菜地  |  来源: 原创  | 

点击查看原文

发表评论 阅读全文(305) | 回复(3)

发表于 2009/7/7 10:41:40

0

关于投票

最全面的Multisim简介 转载

 
Multisim是加拿大图像交互技术公司(Interactive Image Technoligics简称IIT公司)推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
    工程师们可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。  
   
Multisim发展简介:
加拿大EWB (Electrical Workbench)
EWB4.0
EWB5.0
EWB6.0
Multisim2001
Multisim 7
Multisim 8
Multisim 9
Multisim 10

目前在各高校教学中普遍使用Multisim2001,网上最为普遍的是Multisim 9,NI于2007年08月26日发行NI系列电子电路设计软件,NI Multisim v 10作为其中一个组成部分包含于其中。

EDA在发达国家的应用状况
EDA就是“Electronic Design Automation”的缩写技术已经在电子设计领域得到广泛应用。发达国家目前已经基本上不存在电子产品的手工设计。一台电子产品的设计过程,从概念的确立,到包括电路原理、PCB版图、单片机程序、机内结构、FPGA的构建及仿真、外观界面、热稳定分析、电磁兼容分析在内的物理级设计,再到PCB钻孔图、自动贴片、焊膏漏印、元器件清单、总装配图等生产所需资料等等全部在计算机上完成。EDA技术借助计算机存储量大、运行速度快的特点,可对设计方案进行人工难以完成的模拟评估、设计检验、设计优化和数据处理等工作。EDA已经成为集成电路、印制电路板、电子整机系统设计的主要技术手段。美国NI公司(美国国家仪器公司)的Multisim 9软件就是这方面很好的一个工具。而且Multisim 9计算机仿真与虚拟仪器技术(LABVIEW 8)(也是美国NI公司的)可以很好的解决理论教学与实际动手实验相脱节的这一老大难问题。学员可以很好地、很方便地把刚刚学到的理论知识用计算机仿真真实的再现出来。并且可以用虚拟仪器技术创造出真正属于自己的仪表。极大地提高了学员的学习热情和积极性。真正的做到了变被动学习为主动学习。这些在教学活动中已经得到了很好的体现。还有很重要的一点就是:计算机仿真与虚拟仪器对教员的教学也是一个很好的提高和促进。
理论教学――计算机仿真――实验环节

multisim 9概述
Multisim 被美国NI公司收购以后,其性能得到了极大的提升。最大的改变就是:Multisim 9与LABVIEB 8的完美结合:
新特点:(1)可以根据自己的需求制造出真正属于自己的仪器;
    (2)所有的虚拟信号都可以通过计算机输出到实际的硬件电路上;
    (3)所有硬件电路产生的结果都可以输回到计算机中进行处理和分析。
Multisim 9组成:
1. ―――构建仿真电路
2. ―――仿真电路环境
3. multi mcu ------   单片机仿真
4. ――FPGA、PLD,CPLD等仿真
5. ――FPGA、PLD,CPLD等仿真
6. ―― 通信系统分析与设计的模块
7.   ――   PCB设计模块:直观、层板32层、快速自动布线、强制向量和密度直方图
8. -(自动布线模块)
仿真的内容:
1.    器件建模及仿真;
2.    电路的构建及仿真;
3.    系统的组成及仿真;
4.    仪表仪器原理及制造仿真。
器件建模及仿真:可以建模及仿真的器件:
模拟器件(二极管,三极管,功率管等);
          数字器件(74系列,COMS系列,PLD,CPLD等);
          FPGA器件。
电路的构建及仿真:单元电路、功能电路、单片机硬件电路的构建及相应软件调试的仿真。
系统的组成及仿真:Commsim 是一个理想的通信系统的教学软件。它很适用于如‘信号与系统’、‘通信’、‘网络’等课程,难度适合从一般介绍到高级。使学生学的更快并且掌握的更多。
Commsim含有200多个通用通信和数学模块,包含工业中的大部分编码器,调制器,滤波器,信号源,信道等,Commsim 中的模块和通常通信技术中的很一致,这可以确保你的学生学会当今所有最重要的通信技术。
要观察仿真的结果,你可以有多种选择:时域,频域,XY图,对数坐标,比特误码率,眼图和功率谱。
仪表仪器的原理及制造仿真:可以任意制造出属于自己的虚拟仪器、仪表,并在计算机仿真环境和实际环境中进行使用。
PCB的设计及制作:产品级版图的设计及制作。
美国NI公司提出的理念:
“把实验室装进PC机中”
“软件就是仪器

multisim 10概述
●通过直观的电路图捕捉环境, 轻松设计电路
●通过交互式SPICE仿真, 迅速了解电路行为
●借助高级电路分析, 理解基本设计特征
●通过一个工具链, 无缝地集成电路设计和虚拟测试
●通过改进、整合设计流程, 减少建模错误并缩短上市时间
NI Multisim软件结合了直观的捕捉和功能强大的仿真,能够快速、轻松、高效地对电路进行设计和验证。凭借NI Multisim,您可以立即创建具有完整组件库的电路图,并利用工业标准SPICE模拟器模仿电路行为。借助专业的高级SPICE分析和虚拟仪器,您能在设计流程中提早对电路设计进行的迅速验证,从而缩短建模循环。与NI LabVIEW和SignalExpress软件的集成,完善了具有强大技术的设计流程,从而能够比较具有模拟数据的实现建模测量。


电子通信类其它常用的仿真软件:
System view---数字通信系统的仿真
Proteus――单片机及ARM仿真
LabVIEW――虚拟仪器原理及仿真

Multisim 2001 使用简介

Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。为适应不同的应用场合,Multisim推出了许多版本,用户可以根据自己的需要加以选择。在本书中将以教育版为演示软件,结合教学的实际需要,简要地介绍该软件的概况和使用方法,并给出几个应用实例。

第一节  Multisim概貌
软件以图形界面为主,采用菜单、工具栏和热键相结合的方式,具有一般Windows应用软件的界面风格,用户可以根据自己的习惯和熟悉程度自如使用。
一、Multisim的主窗口界面。
启动Multisim 2001后,将出现如图1所示的界面。

界面由多个区域构成:菜单栏,各种工具栏,电路输入窗口,状态条,列表框等。通过对各部分的操作可以实现电路图的输入、编辑,并根据需要对电路进行相应的观测和分析。用户可以通过菜单或工具栏改变主窗口的视图内容。

二、菜单栏
菜单栏位于界面的上方,通过菜单可以对Multisim的所有功能进行操作。

不难看出菜单中有一些与大多数Windows平台上的应用软件一致的功能选项,如File,Edit,View,Options,Help。此外,还有一些EDA软件专用的选项,如Place,Simulation,Transfer以及Tool等。

1. File
File菜单中包含了对文件和项目的基本操作以及打印等命令。
命令
功能

New
建立新文件

Open
打开文件

Close
关闭当前文件

Save
保存

Save As
另存为

New Project
建立新项目

Open Project
打开项目

Save Project
保存当前项目

Close Project
关闭项目

Version Control
版本管理

Print Circuit
打印电路

Print Report
打印报表

Print Instrument
打印仪表

Recent Files
最近编辑过的文件

Recent Project
最近编辑过的项目

Exit
退出Multisim

2. Edit
Edit命令提供了类似于图形编辑软件的基本编辑功能,用于对电路图进行编辑。
命令
功能

Undo
撤消编辑

Cut
剪切

Copy
复制

Paste
粘贴

Delete
删除

Select All
全选

Flip Horizontal
将所选的元件左右翻转

Flip Vertical
将所选的元件上下翻转

90 ClockWise
将所选的元件顺时针90度旋转

90 ClockWiseCW
将所选的元件逆时针90度旋转

Component Properties
元器件属性



3.View
通过View菜单可以决定使用软件时的视图,对一些工具栏和窗口进行控制。
命令
功能

Toolbars
显示工具栏

Component Bars
显示元器件栏

Status Bars
显示状态栏

Show Simulation Error Log/Audit Trail
显示仿真错误记录信息窗口

Show XSpice Command Line Interface
显示Xspice命令窗口

Show Grapher
显示波形窗口

Show Simulate Switch
显示仿真开关

Show Grid
显示栅格

Show Page Bounds
显示页边界

Show Title Block and Border
显示标题栏和图框

Zoom In
放大显示

Zoom Out
缩小显示

Find
查找


4.Place
通过Place命令输入电路图。
命令
功能

Place Component
放置元器件

Place Junction
放置连接点

Place Bus
放置总线

Place Input/Output
放置输入/出接口

Place Hierarchical Block
放置层次模块

Place Text
放置文字

Place Text Description Box
打开电路图描述窗口,编辑电路图描述文字

Replace Component
重新选择元器件替代当前选中的元器件

Place as Subcircuit
放置子电路

Replace by Subcircuit
重新选择子电路替代当前选中的子电路


5.Simulate
通过Simulate菜单执行仿真分析命令。
命令
功能

Run
执行仿真

Pause
暂停仿真

Default Instrument Settings
设置仪表的预置值

Digital Simulation Settings
设定数字仿真参数

Instruments
选用仪表(也可通过工具栏选择)

Analyses
选用各项分析功能

Postprocess
启用后处理

VHDL Simulation
进行VHDL仿真

Auto Fault Option
自动设置故障选项

Global Component Tolerances
设置所有器件的误差


6.Transfer菜单
Transfer菜单提供的命令可以完成Multisim对其它EDA软件需要的文件格式的输出。
命令
功能

Transfer to Ultiboard
将所设计的电路图转换为Ultiboard(Multisim中的电路板设计软件)的文件格式

Transfer to other PCB Layout
将所设计的电路图以其他电路板设计软件所支持的文件格式

Backannotate From Ultiboard
将在Ultiboard中所作的修改标记到正在编辑的电路中

Export Simulation Results to MathCAD
将仿真结果输出到MathCAD

Export Simulation Results to Excel
将仿真结果输出到Excel

Export Netlist
输出电路网表文件


7.Tools
Tools菜单主要针对元器件的编辑与管理的命令。
命令
功能

Create Components
新建元器件

Edit Components
编辑元器件

Copy Components
复制元器件

Delete Component
删除元器件

Database Management
启动元器件数据库管理器,进行数据库的编辑管理工作

Update Component
更新元器件


8.Options
通过Option菜单可以对软件的运行环境进行定制和设置。
命令
功能

Preference
设置操作环境

Modify Title Block
编辑标题栏

Simplified Version
设置简化版本

Global Restrictions
设定软件整体环境参数

Circuit Restrictions
设定编辑电路的环境参数


9.Help
Help菜单提供了对Multisim的在线帮助和辅助说明。
命令
功能

Multisim Help
Multisim的在线帮助

Multisim Reference
Multisim的参考文献

Release Note
Multisim的发行申明

About Multisim
Multisim的版本说明


三、工具栏
Multisim 2001提供了多种工具栏,并以层次化的模式加以管理,用户可以通过View菜单中的选项方便地将顶层的工具栏打开或关闭,再通过顶层工具栏中的按钮来管理和控制下层的工具栏。通过工具栏,用户可以方便直接地使用软件的各项功能。
顶层的工具栏有:Standard工具栏、Design工具栏、Zoom工具栏,Simulation工具栏。
1.Standard工具栏包含了常见的文件操作和编辑操作,如下图所示:

2.Design工具栏作为设计工具栏是Multisim的核心工具栏,通过对该工作栏按钮的操作可以完成对电路从设计到分析的全部工作,其中的按钮可以直接开关下层的工具栏:Component中的Multisim Master工具栏,Instrument工具栏。

(1)作为元器件(Component)工具栏中的一项,可以在Design工具栏中通过按钮来开关Multisim Master工具栏。该工具栏有14个按钮,每个每一个按钮都对应一类元器件,其分类方式和Multisim元器件数据库中的分类相对应,通过按钮上图标就可大致清楚该类元器件的类型。具体的内容可以从Multisim的在线文档中获取。

这个工具栏作为元器件的顶层工具栏,每一个按钮又可以开关下层的工具栏,下层工具栏是对该类元器件更细致的分类工具栏。以第一个按钮 为例。通过这个按钮可以开关电源和信号源类的Sources工具栏如下图所示:

(2)Instruments工具栏集中了Multisim为用户提供的所有虚拟仪器仪表,用户可以通过按钮选择自己需要的仪器对电路进行观测。


3.用户可以通过Zoom工具栏方便地调整所编辑电路的视图大小。


4.Simulation工具栏可以控制电路仿真的开始、结束和暂停。


第二节  Multisim对元器件的管理
EDA软件所能提供的元器件的多少以及元器件模型的准确性都直接决定了该EDA软件的质量和易用性。Multisim为用户提供了丰富的元器件,并以开放的形式管理元器件,使得用户能够自己添加所需要的元器件。
Multisim以库的形式管理元器件,通过菜单Tools/ Database Management打开Database Management(数据库管理)窗口(如下图所示),对元器件库进行管理。
         
在Database Management窗口中的Daltabase列表中有两个数据库:Multisim Master和User。其中Multisim Master库中存放的是软件为用户提供的元器件,User是为用户自建元器件准备的数据库。用户对Multisim Master数据库中的元器件和表示方式没有编辑权。当选中Multisim Master时,窗口中对库的编辑按钮全部失效而变成灰色,如下图所示。但用户可以通过这个对话窗口中的Button in Toolbar显示框,查找库中不同类别器件在工具栏中的表示方法。

据此用户可以通过选择User数据库,进而对自建元器件进行编辑管理。
在Multisim Master中有实际元器件和虚拟元器件,它们之间根本差别在于:一种是与实际元器件的型号、参数值以及封装都相对应的元器件,在设计中选用此类器件,不仅可以使设计仿真与实际情况有良好的对应性,还可以直接将设计导出到Ultiboard中进行PCB的设计。另一种器件的参数值是该类器件的典型值,不与实际器件对应,用户可以根据需要改变器件模型的参数值,只能用于仿真,这类器件称为虚拟器件。它们在工具栏和对话窗口中的表示方法也不同。在元器件工具栏中,虽然代表虚拟器件的按钮的图标与该类实际器件的图标形状相同,但虚拟器件的按钮有底色,而实际器件没有,如下图所示。

从图中可以看到,相同类型的实际元器件和虚拟元器件的按钮并排排列,并非所有的是元器件都设有虚拟类的器件。
在元器件类型列标中,虚拟元器件类的后缀标有Virtual,如下图所示:

第三节  输入并编辑电路
输入电路图是分析和设计工作的第一步,用户从元器件库中选择需要的元器件放置在电路图中并连接起来,为分析和仿真做准备。
一、设置Multisim的通用环境变量
为了适应不同的需求和用户习惯,用户可以用菜单Option/Preferences打开Preferences对话窗口,如下图所示。

通过该窗口的6个标签选项,用户可以就编辑界面颜色、电路尺寸、缩放比例、自动存储时间等内容作相应的设置。
以标签Workspace为例,当选中该标签时,Preferences对话框如下图所示:

在这个对话窗口中有3个分项:
1.Show:可以设置是否显示网格,页边界以及标题框。
2.Sheet size:设置电路图页面大小。
3.Zoom level:设置缩放比例。
其余的标签选项在此不再详述。
二、取用元器件
取用元器件的方法有两种:从工具栏取用或从菜单取用。下面将以74LS00为例说明两种方法。
1.从工具栏取用:Design工具栏&reg;Multisim Master工具栏&reg;TTL工具栏&reg;74LS按钮
从TTL工具栏中选择74LS按钮打开这类器件的Component Browser窗口,如下图所示。其中包含的字段有Database name(元器件数据库),Component Family(元器件类型列表),Component Name List(元器件名细表),Manufacture Names(生产厂家),Model Level-ID(模型层次)等内容。



2.从菜单取用:通过Place/ Place Component命令打开Component Browser窗口。该窗口与上图一样。

3.选中相应的元器件
在Component Family Name中选择74LS系列,在Component Name List中选择74LS00。单击OK按钮就可以选中74LS00,出现如下备选窗口。7400是四/二输入与非门,在窗口种的Section A/B/C/D分别代表其中的一个与非门,用鼠标选中其中的一个放置在电路图编辑窗口中,如左图所示。器件在电路图中显示的图形符号,用户可以在上面的Component Browser中的Symbol选项框中预览到。当器件放置到电路编辑窗口中后,用户就可以进行移动、复制、粘贴等编辑工作了,在此不再详述。
三、将元器件连接成电路
在将电路需要的元器件放置在电路编辑窗口后,用鼠标就可以方便地将器件连接起来。方法是:用鼠标单击连线的起点并拖动鼠标至连线的终点。在Multisim中连线的起点和终点不能悬空。

第四节 虚拟仪器及其使用
对电路进行仿真运行,通过对运行结果的分析,判断设计是否正确合理,是EDA软件的一项主要功能。为此,Multisim为用户提供了类型丰富的虚拟仪器,可以从Design工具栏&reg;Instruments工具栏,或用菜单命令(Simulation/ instrument)选用这11种仪表,如下图所示。在选用后,各种虚拟仪表都以面板的方式显示在电路中。

下面将11种虚拟仪器的名称及表示方法总结如下表:
菜单上的表示方法
对应按钮
仪器名称
电路中的仪器符号

Multimeter

万用表


Function Generator

波形发生器


Wattermeter

瓦特表


Oscilloscape

示波器


Bode Plotter

波特图图示仪


Word Generator

字元发生器


Logic Analyzer

逻辑分析仪


Logic Converter

逻辑转换仪


Distortion Analyzer

失真度分析仪


Spectrum Analyzer

频谱仪


Network Analyzer

网络分析仪



注1:该软件中用 ’ 代替 — 表示反变量,例如 。
注2:该软件没有异或符号,处理方式是将异或运算写成 。

在电路中选用了相应的虚拟仪器后,将需要观测的电路点与虚拟仪器面板上的观测口相连(如下图),可以用虚拟示波器同时观测电路中两点的波形。

双击虚拟仪器就会出现仪器面板,面板为用户提供观测窗口和参数设定按钮。以上图为例,双击图中的示波器,就会出现示波器的面板。通过Simulation工具栏启动电路仿真,示波器面板的窗口中就会出现被观测点的波形,如下图所示。

第五节  电路实例
这节将以3个电路实例说明Multisim在电路设计和分析中的使用方法。Multisim的基础是正向仿真,为用户提供了一个软件平台,允许用户在进行硬件实现以前,对电路进行观测和分析。
例1.构造同步16进制计数器,并用7段数码管进行观测(文件名:counter.msm)。通过运行仿真验证电路功能。在这个电路的基础上将计数器改为10进制,并通过仿真验证修改结果是否正确(注:显示0~9)。
首先选用T触发器和带译码的7段数码管和与门一起构成4位16进制计数器如下图。在电路中选用1Hz矩形波发生器,通过仿真观测运行的情况。


使用异步置零法,在图中加入反馈电路,当触发器的状态变为1010时通过Reset端对触发器进行清零。电路设计结果如下图。通过仿真可以观测到电路已经成为10进制计数器(文件名:counterb.msm)。


例2.分析已经给出的阶梯波发生器。电路如下图(文件名:Stepwave.msm)。通过运行仿真观测电路的功能,通过改变信号源的参数来改变阶梯波的频率,同时用示波器进行观测。

从图中可以看到,电路大致分为两个部分,上部分为4个T触发器和相应门电路构成的16进制计数器,下部分为D/A转换器。电路的信号源为矩形波发生器,通过示波器观测到的波形如下图。

系统分类: 虚拟仪器  |  用户分类: 嵌入式  |  标签: Multisim 简介 仿真  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(709) | 回复(0)

234Next >Total , Page /