找回密码
 注册
关于网站域名变更的通知
查看: 361|回复: 1
打印 上一主题 下一主题

[毕业设计] 单片机的网络应用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-20 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
0 F/ k' |& p- W( R
摘要
1 _( i. E4 ~0 s3 \! V! \+ s主要阐述了单片机用于网络应用时,在确定架构方案时应着重考虑的几个问题,这也是确定系统性价比的重要因素。; F0 f5 o& ^: C! t4 B
包括RTOS的使用问题;阻塞或非阻塞调用的问题;采用单线程设计还是采用多线程设计的问题;存储器管理问题;采用何
2 K1 B1 l/ z) g$ U) t' m2 A& k种网络接口的问题。并例举了典型的单片机网络应用系统的软硬件架构。在此架构基础上可进行多种用途的单片机网络应! q& V" W. L! W: g+ `1 S3 x6 z
用系统的开发。
' l1 f9 \" |% [. E* K1 T
- p$ |2 N- b- Y) v3 Q# R; v3 C) J关键词:单片机,网络,RTOS,TCP/IP,阻塞,线程9 i8 ?3 W" q; G8 M

1 Y+ F& A2 S* t$ T8 S以单片机作为嵌人式系统的控制处理器件,实现嵌人式系
3 Z' N$ W" I5 t8 F: T( v- \统接人Internet的功能,从而实现远程控制、监视等服务,是目% E8 I. {0 e; ?9 u
前单片机应用的一个方面。如何架构一个高性价比,经济实用的/ _6 j, q# ?1 |/ A  \& l
系统是值得思考的问题。
: f" j1 F+ V" y) T8 X9 M1首要考虑的几个问题
. h( T# l, Z  I/ v6 E# b9 D1.1是否使用实时操作系统3 G" A+ ]! `. d) l  |
对于嵌人式系统是否使用操作系统-直是一个颇具争议的
1 U$ {! A7 c: |2 X+ n0 @问题。操作系统提供了基本的服务层,简化嵌人式应用程序开发
4 o# d9 s; g% @! H者的工作。从另一个角度看,OS对于资源的使用有较多约束,导8 q# N8 @1 l# i
致最终设备的费用提高。对于一些硬件资源比较有限,处理能力
2 t7 E, O+ D9 E  F% A: j' X低的mcu来说,使用RTOS是-一个很大的负担。现在提出不使" D7 G( O) }7 q$ j
用操作系统或核心是非常困难的,特别是当设备必须使用因特( S0 Y* C: F3 D& P0 F; R. C
网协议通信时。TCP/IP 栈会给嵌人式系统设计设置其他约束。4 ]8 E  J, I5 l. W- Y+ J5 L4 w
如:TCP/IP栈必须有一个相对的准确时间源,以便进行时间管
  Q0 r" B* N6 Z# V$ G理,处理各种发生在栈中的超时和定时活动。栈还必须对数据包
( F1 C' D) m* s8 K0 t有一个资源管理系统,有可能是一个标准的动态存储管理系统。
& G, S5 J7 ^$ w4 k' G9 S最理想的情况是使用本身自带TCP/IP协议栈的操作系( O$ t% B4 t: A. b( U4 X! {
统。例如,全嵌人式的Linux版本(μCLinux)自动包括一个标准% j+ E) c( i& X+ W& W
的TCP/IP栈。这种模式的最大优点是软件的可使用性。桌面系
3 ~$ k! S3 _) D统和嵌入式设备上的Linux版本实际上是相同的,所以网络协2 F3 I% n8 O" d2 `3 f2 b% Q: `
议和应用程序可以很快地和十分容易地移植。这意味着针对标
. f' r: v9 s; q+ s' e% o6 b: H. V准桌面系统使用的大量代码可以十分容易地经简化用于嵌人式4 B# K/ j% Z8 d
环境,节省了时间和精力。3 h. c* F, F$ v9 V2 L. g2 |7 B
即便是μCLinux这样高度优化的、代码紧凑的嵌人式Lin-
; t3 v- _( z8 Iux,其编译后产生的目标代码也在几百K的数量级,显然并不; W; S9 X  |8 S1 \' P8 D
适用于低配的单片机中。但这并不意味着没有RTOS就无法用! M% h  V. U1 x! h' \9 q# Y
单片机实现TCP/IP协议,意味着- -些使用低档单片机的嵌人
1 D' m- v5 X$ l" |1 a, d式系统失去接人Internet的能力。只要可以提供所需的服务(时
( [$ |' h' i( c. H% }钟、存储管理器等),即便没有RTOS,也可使用低档单片机如51, O. M9 T: [! c* s* C9 ^* F
等实现TCP/IP协议栈的功能,完成TCP/IP协议中的ARP、
3 {$ `3 w% _7 s$ ]7 o. p1 YUDP、TCP、IP等协议。这样的实现对资源的要求较少,且实现速9 q1 [, F7 l9 z. f/ }) L
+ {/ w, M& [4 c7 D, S6 @
度较快。
7 I; i# c8 E" M: Y2 x: B1.2阻塞或非阻塞调用
; t* m0 U; |! |% E; M" B阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只
5 b1 S; [) s/ C1 ?6 |% O有在得到结果之后才会返回。非阻塞和阻塞的概念相对应,指在不, X0 I" Z- |* v3 s1 h1 q: v- T
能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。7 L, _& G, L$ f6 }  `7 l- s
标准的套接字层要定义阻塞语义,如果套接字中没有可用9 g7 V& S9 T& s
数据,对其进行的读调用将会引起调用阻塞,直到有可用的数
0 c3 T6 ~* A: G4 U$ O据。写调用也是如此。如果写的字节数大于缓存中可用空间,写./ t5 a5 o! M4 @$ D" F+ f" C
调用被阻塞,直到写缓存中有足够的空间。如果无法使用操作系
# F4 }4 S, w, O4 b: G, {统,那么对于这些阻塞语义也不可用。套接字层也可以以非阻塞6 f7 I8 r1 n: j5 ~' h8 _
方式工作,但效率有可能下降。有些商用的协议栈可以提供回调
5 d+ X3 l6 p: K. K6 Q机制,比如当针对某个套接字发生了某些类型事件时,就调用用6 e3 w& d  e" R0 k
户定义的应用程序。+ k$ g! `3 c* _1 W2 d5 L' x+ A4 M
1.3单线程和多线程设计8 V2 U; ]0 X6 m- u" v9 F
当使用RTOS时,ICP/IP协议栈可以定义成单任务,或者9 J3 b; X# C0 g0 q$ v$ r$ [
根据协议的不同层来进行划分。大多数情况,在栈和数据链路层.$ g: S4 v8 i% P
之间存在着区别。媒体访问控制(MAC)或串行端口(针对PPP/
3 h; m; D  X3 C* z1 G4 SSLIP)因为其异步性质,通常是在TCP/IP栈软件上划分。5 U- O( \8 P) Q5 C  H: i; O3 U
1.4存储器管理问题7 G" P1 U# k- G. V/ ]
嵌入式系统在设计中要考虑降低成本。这就意味着可以使
9 f# a  \' i( [  u用的硬件资源也会相应减少,比如存储器件,闪存/非易失存储! g  a# |. L4 [- t& T( G2 b
和RAM。RAM数量小意味着要特别注意确定TCP/IP栈用来分
% Y% t. V0 K2 R; _& E配数据包的方法。
3 k0 a* {( k; b+ a1 Z# {. x, m- \分配数据包的方法通常可以在嵌人栈中配置,特别是对OS
! d# c* B& n1 J3 f核心未知的情况下。可以采用的两种主要方法是动态分配或者
$ g8 q6 Q" ^3 X2 {预先分配。
% x4 M4 [) [2 |+ w- b9 h包的动态分配意味着只要需要包,就可以通过堆栈子系统5 ~' f, }  P7 B5 q; W
进行动态分配。堆栈只不过是可以根据应用程序的需要划分成
" g3 g- N6 v' d小块的一一个大块的存储器。堆栈还被用做一般化资 源管理,所以
5 J9 |% X0 u; r& F& T+ e5 o它是一个系统存储器管理的基本基地。动态存储器管理存在的+ u3 U$ j( J6 s
基本问题是垃圾收集。当包返回到堆栈时,只要这可能是大的可
' E$ A( }) d! Y6 R3 \5 x8 Z  I
- {' L, e; C; [5 s  c! m: P7 k
) f/ o/ r- ~* ?7 I5 l
5 i4 O; |2 r3 j. `7 r& [' t8 \8 _附件下载:
游客,如果您要查看本帖隐藏内容请回复
; X$ y; H/ k; G  L9 f1 H

4 I# n5 d( N6 N, `  L

该用户从未签到

2#
发表于 2020-3-20 09:19 | 只看该作者
嵌入式系统在设计中要考虑降低成本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-2 13:54 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表