- 博客(123)
- 资源 (12)
- 收藏
- 关注
转载 想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某
2009-05-30 11:51:00 1350 1
转载 PCB布线规则(二)
一、元件布局基本规则1. 按电路模块进行布局,实现同一功能的相关电路称为一个模块,电路模块中的元件应采用就近集中原则,同时数字电路和模拟电路分开;2.定位孔、标准孔等非安装孔周围1.27mm 内不得贴装元、器件,螺钉等安装孔周围3.5mm(对于M2.5)、4mm(对于M3)内不得贴装元器件;3. 卧装电阻、电感(插件)、电解电容等元件的下方避免布过孔,以免波峰焊后过孔与元件
2009-05-30 11:46:00 2629
转载 PCB布线规则(一)
IC去偶电容的布局要尽量靠近IC的电源管脚,并使之与电源和地之间形成的回路最短。 对于芯片VCC的LAYOUT,原则上先进大电容再进小电容,大C->小C->CPU,效果要好一些。因为小电容的谐振频率要比大电容高,靠近芯片能够使较高频率分量的回流路径较小,按上述顺序即可使回流路径大小与其频率成分高低成反比,这样在满足去耦功能的同时,也会降低电磁辐射。 在高速数字电路设计中,电源与地
2009-05-30 11:38:00 5042 1
原创 单点地 多点地
单点地要解决的问题就是针对“公共地阻抗耦合”和“低频地环路”,多点地是针对“高频所容易通过长地走线产生的共模干扰”.低频电路中,信号的工作频率小于1MHz,它的布线和器件间的电感影响较小,而接地电路形成的环流对干扰影响较大,因而应采用一点接地。当信号工作频率大于10MHz时,地线阻抗变得很大,此时应尽量降低地线阻抗,应采用就近多点接地。当工作频率在1~10MHz时,如果采用一点接地
2009-05-29 19:21:00 3232
转载 谁是古代最风流的首席娱乐官?
若是有人问,谁是古代最风流的首席娱乐官?答曰,非北宋著名词人,人称白衣卿相的柳永莫属! 柳永,崇安人,也就是今天的福建武夷山人。北宋婉约派创始人。原名三变,字景庄。后改名永,字耆卿。排行第七,又称柳七。宋仁宗朝进士,官至屯田员外郎,故世称柳屯田。本来,柳永想在政治经济上有所发展,但令他始料不及的是,自己后来竟做了大宋王朝御封的首席娱乐官。 柳永的家族可谓是一门七进士,其父亲、叔叔、哥哥
2009-05-28 23:34:00 2241
转载 继电器驱动电路原理及注意事项
继电器驱动电流一般需要20-40mA或更大,线圈电阻100-200欧姆,因此要加驱动电路 1. 晶体管用来驱动继电器,必须将晶体管的发射极接地。具体电路如下:NPN晶体管 PNP晶体管 NPN晶体管驱动时:当晶体管T1基极被输入高电平时,晶体管饱和导通,集电极变为低电平,因此继电器线圈通电,触点RL1吸
2009-05-27 19:06:00 46662 3
转载 do while(0)在宏定义中的应用
这是一个奇怪的循环,它根本就只会运行一次,为什么不去掉外面的do{..}while结构呢?我曾一度在心里把它叫做“怪圈”。原来这也是非常巧妙的技巧。在工程中可能经常会引起麻烦,而上面的定义能够保证这些麻烦不会出现。下面是解释:假设有这样一个宏定义#define macro(condition) /if(condition) dosomething()现在在程序中这样使用这个宏:if(temp)
2009-05-27 16:30:00 1566
原创 运放知识
关于运放输出如何限幅?输出串联一个电阻,再接二极管箝位(即二级管负级接参考电压)。 运放震荡原因:1. 可能运放是分布电容和电感引起的 ----------------可通过反馈端并联电容,抵消影响。 2. 运放驱动容性负载导致。 ---------------------------可在运放输出端先接入一个电阻,再接负载。 3. 可能是反馈过深引起的 ---
2009-05-27 00:42:00 4967
原创 旅途
汽车沿着崎岖的山路缓缓向上爬行。此时大雾已经将山上一草一木笼罩在白色的雾气,周边的景物也随之躲藏起来,司机只能凭借车灯微弱的灯光缓缓向前探寻。“这是什么路,还赶上这大雾!真倒霉。”司机一面抱怨着,一面紧紧盯着前面,预防着前面可能未知的危险。 车子沿着一个又一个弯道不断盘旋而上,从一个弯道的起点到另一个起点,周而复始。现在回想起来,我当时处在一个多么美妙的世界啊,
2009-05-26 21:41:00 802
原创 人之常
近读史记,偶见两篇文章,不禁感叹古今皆同,特摘录如下: 孟尝君列传 自齐王毁废孟尝君,诸客皆去。后召而复之,冯驩迎之。未到,孟尝君太息叹曰:“文常好客,遇客无所敢失,食客三千有余人,先生所知也。客见文一日废,皆背文而去,莫顾文者。今赖先生得复其位,客亦有何面目复见文乎?如复见文者,必唾其面而大辱之。”冯驩
2009-05-26 21:38:00 821
转载 光纤常识
<span class="t_tag" onclick="function anonymous(){function onclick(){function onclick(){function onclick(){function onclick(){tagshow(event)}}}}}">光纤的种类很多,分类方法也是各种各样的。从材料
2009-05-25 20:52:00 2814
转载 用法拉电容从容实现单片机掉电数据保存
公式Q = I*t;Q = C*U; 今天,因为MCU内部一般都带FLASH ROM和伴随着法拉级电容的出现,事实上已经宣布背掉电电池或者用达拉斯DS存储器实现掉电数据保存的传统的思维和电路已经成为历史!以下的电路,是一个可靠的简单的掉电检测、法拉电容能量储存等完整硬件电路和相应的软件细节,是笔者在产品上一个成熟的可靠的自诩经典电路和心血,在这里完全公开地提供给二姨
2009-05-25 17:13:00 6916 3
转载 通信系统为什么用-48V电源
1. 早期的有线电话采用“共电式”,电话机的电源都是通过电话线由电话局交换机统一供电,电话线起着供电、传送话音、铃流、摘挂机信号等作用。早期电话局使用的电源是原始的铅酸蓄电池,当时的材料、结构等适合正极接地,其电压是基础(单电池)电压是1.2伏的倍数,又根据当时设备部件的和线路的能力,并保证市话有较远的通信距离,以及安全性等,48V电源选择了正极接地(电压也有60伏的),因此对地而言系统是负4
2009-05-25 16:21:00 7721 2
转载 几种电流源电路
在实际使用中,对大电流的恒流源采用MOSFET代替三极管。另外恒流源电路容易震荡,需要注意,通常需要在反馈电路并联电容,来补偿相位。三极管比MOS管不易起振动,关键的原因是MOS管具有较大的结电容,而容性负载改变了运放的传递函数,具体情况需参考各运放相关的特性曲线加以分析。详细的分析在网上有很多资料可以参考,各大芯片厂商也有相关文章,我就不多说了。常用的消除振荡的方法:1、选用驱动
2009-05-25 11:16:00 5112
原创 示波器知识
采样率是数字上的,每秒采样多少个样点。而带宽则是模拟上的,能够测试信号频率的范围。如果一个ADC的采样频率为5G,但是前面搞一个100M的低通滤波器,那采样率就是5G,带宽就是100M了。带宽反映了这个示波器能够测试的频率范围,如果超过这个频率范围,就不准确了。但是有一条最基本的原则:采样频率不得低于信号带宽的2倍。 示
2009-05-24 22:03:00 1733
转载 51单片机汇编指令速查表
51单片机汇编指令速查表指令格式 功能简述 字节数 周期一、数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,@Ri 内部RAM单元送累加器 1 1 MOV @Ri ,A 累加器送内部RAM单元 1 1 MOV A ,#data 立即数送累加器 2 1 MOV A ,direct 直接寻址单元送累加器 2 1 MOV dir
2009-05-24 09:33:00 3342 2
转载 Realview MDK如何bin烧写
因为Realview MDK可以直接下载*.axf或者*.hex格式的文件,但是不能直接下载*.bin格式的文件,所以, 只能先将*.bin格式的文件转换成*.hex格式的文件,例如BIN2HEX工具可以转换(最大的转换容量为64K,如果超过这个容量,必须手动添加线型扩展地址或者找到更好的转换工具突破这个64K的限制).在转换的时候,一定要保证地址正确,否则将导致烧写不成功. 通过这种方法, 可以
2009-05-23 20:24:00 1633
转载 关键字volatile使用问题
Introduction to the Volatile Keyword认识关键字Volatile • 在内存中进行地址映射的设备寄存器;• 在中断处理程序中可能被修改的全局变量;• 多线程应用程序中的全局变量;例子(1)主程序和中断共享static volatile int i=0;int main(void){...while
2009-05-21 13:50:00 1411
转载 浅谈PCB敷铜的“弊与利”
敷铜作为PCB设计的一个重要环节,不管是国产的青越锋PCB设计软件,还国外的一些Protel,PowerPCB都提供了智能敷铜功能,那么怎样才能敷好铜,我将自己一些想法与大家一起分享,希望能给同行带来益处。 所谓覆铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜。敷铜的意义在于,减小地线阻抗,提高抗干扰能力;降低压降,提高电源效率;与地线相连,还可以减小环路
2009-05-21 09:39:00 1870
转载 怎样理解阻抗匹配?---非常好
一、输入阻抗输入阻抗是指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。你可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。输入阻抗跟一个普通的电抗元件没什么两样,它反映了对电流阻碍作用的大小。对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;而对于电流驱动型的电路,输入
2009-05-21 09:28:00 4357
原创 ARM与51编写程序的区别
测试环境:KEIL (1) int变量 在51 占2个字节;在ARM占4个字节 (2)结构体对齐 在51是按照一个字节对齐; 在ARM是按结构体默认对齐规则对齐 (3)字节在内存的排列顺序 在51是大端 ; 在ARM大多数是小端,但有的可以大小端选择。 在大端存储格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中在小端存储
2009-05-20 22:24:00 6658 2
转载 变量类型的转换
变量类型的转换 变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。 自动转换 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则: 1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 3.所有的浮
2009-05-20 10:53:00 1492
转载 const使用详解
const使用详解作者:康建东关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助: 一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500;const int* a = &b; [1]int const *a = &b; [2]
2009-05-20 10:40:00 918
转载 (*(void(*)())0) ()讲解
硬件地址跳到0处(*(void(*)())0) (); 预备知识float (*h)();表示h是一个指向返回值float类型的函数的指针(float(*)())表示一个"指向返回值float类型的函数的指针"的类型转换符 假设fp是一个函数指针,那么如何调用fp所指向的函数,调用方法如下: (*fp)(); 按照人们的惯性思维,那么我们可以这
2009-05-19 21:51:00 10851 1
原创 SPI总线
SPI总线简介示波器(带SPI)查看SPI波形,要把NSS片选信号接入,才能看到SPI数据显示SPI 的时钟信号要配置成推挽方式而不是漏极开路方式,因为漏极开路会导致上升时间过长,当SPI速率较高时,会有问题 同步外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通
2009-05-19 21:43:00 2356
转载 电路常识性概念--非常好
一.TTL TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源。1.输出高电平Uoh和输出低电平Uol Uoh≥2.4V,Uol≤0.4V2.输入高电平和输入低电平 Uih≥2.0V,Uil≤0.8V二.CMOS
2009-05-19 21:35:00 1931
转载 OC门
在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。 1. 利用外部电路的驱动能力,减少IC内部的驱动。2. 可以将多个开漏输出的Pin,连接到一条线上。形成“与逻辑”关系。(
2009-05-19 21:08:00 9341
转载 一些公司的电子类笔试题
1、同步电路和异步电路的区别是什么?(仕兰微电子)异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和持时间,待下面介绍。 同步
2009-05-19 20:30:00 1599
原创 Linux进程通信--信号
信号本质信号是在软件层次上对中断机制的一种模拟,软中断 信号来源信号事件的发生有两个来源:硬件来源:(比如我们按下了键盘或者其它硬件故障);软件来源:最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作。 int kill(pid_t pid,int signo) 参数:p
2009-05-17 17:38:00 1018
转载 进程和线程的区别
进程与线程的区别 什么是进程(Process):普通的解释就是,进程是程序的一次执行,而什么是线程(Thread),线程可以理解为进程中的执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别: 进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。 一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程
2009-05-16 14:16:00 629
转载 C8051F单片机使用注意事项
每个I/O 拉电流50mA 灌电流100mA 总电流800mA一、电源和地线方面的处理1、模拟电源和数字电源要分别供电,可以使用两个稳压源分别供电,但是两个电源之间的电压差必须满足数据手册中的规定(,小于0.3V是比较理想的)。实际应用中模拟电源和数字电源可以来自同一个稳压器的输出,只在AV+与VDD之间接简单的滤波器也是很有效的。这里要加一个小电感,也可以用低阻值的电阻(通常2欧姆,
2009-05-16 10:32:00 1671
原创 “串口通信”
示波器查看串口注意地方:(1) RS232电平的定义是:-15V~-3V代表“1”,+3V~+15V代表“0”。(2) 低位在前,高位在后(3) TTL:无数据时候,都是高电平,起始位为低电平,停止位为高电平;RS232反之(4)每个字节头和尾都要加起始位(低电平)和结束位(高电平) (5)9600波特率相当1byte/ms ,115200波特率相当10byte/ms(6)
2009-05-15 08:41:00 3875
转载 原子操作
在多进程(线程)访问资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。 原子操作:UP和SMP的异同 ----------------------------------------------------------- 原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可
2009-05-15 07:14:00 860
转载 select详解及代码释义
关于select函数:其函数原型为:int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);此函数的功能是由内核检测在timeout时间内,是否有readfds,writefds,exceptfds三个句柄集(file descriptors)里的某
2009-05-14 23:30:00 2670
转载 Linux进程状态(ps stat)之R、S、D、T、Z、X
一、进程的状态表述:#define TASK_RUNNING 0#define TASK_INTERRUPTIBLE 1#define TASK_UNINTERRUPTIBLE 2#define TASK_STOPPED 4#define TASK_TRACED 8/* in tsk->exit_state */#define EXIT_ZOMBIE 16#d
2009-05-13 22:24:00 7771 1
原创 TFTP协议
T F T P协议需要客户进程向服务器进程的U D P熟知端口(6 9)发送第一个分组(R R Q或W R Q)。之后服务器进程便向服务器主机申请一个尚未使用的端口( 1 0 7 7,见图1 5 - 2),服务器进程使用这个端口来进行请求客户进程与服务器进程间的其他数据交换。客户进程的端口号(在这个例子中为11 0 6)没有变化。t c p d u m p无法知道主机s r v 4上的
2009-05-13 11:02:00 858
原创 STR912+ucos+tcpip
从网站下的,试跑了一下,可以运行,稳定性还在测试中,注意下载后代码优化的选择,如果选择速度快,代码就要很多,我选择(1) c/c++ compile--->optimization--->size-medium(2) #define NET_BUF_CFG_NBR_LARGE 0 (原来20)这样代码量会减少很多
2009-05-13 10:47:00 1620
原创 STR912--自编TFTP(服务器模式)IAP下载
在ST网站上下到的STR912IAP的示例,有两种,一种是用的HTTP方式,例外一种是DCHP+TFTP方式,前一种没什么好说的,后一种其实是网上常看到的建立无盘工作站的原理,不懂的,网上可以搜搜看看。 第二种方法我个人觉得太复杂,且不适用。它的TFTP是采用客户端的模式,我于是想到采用TFTP服务器模式,不是更简单,只用在dos下敲tftp命令就可以下载了。我觉得TFTP协议是我至今为止看
2009-05-13 10:45:00 1327
原创 大端模式和小端模式
大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图2.1所示: 小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如图2.2所示: 请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int chec
2009-05-13 09:18:00 1162
转载 arm7与arm9的区别
一、“ARM7内核三级流水线和冯·诺伊曼结构; ARM9内核是5级流水线 哈佛结构。” arm7和arm9的pipeline设计是一样的,都是Harvard architecture,不过arm9又被叫做modified-Harvard architecture. “arm7没有mmu,arm720T是MMU的;arm9是有mmu的,arm940T只有Memory protec
2009-05-13 09:09:00 1972
TCP-IP详解卷2(17-23)
2009-05-10
TCP-IP详解卷2(1-16)
2009-05-10
TCP-IP详解卷3
2009-05-10
TCP-IP详解卷1
2009-05-10
非常完善TCPIP协议栈源码,写的不错!包括一个ARM上的移植
2009-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人