ࡱ> @= `@BHX\Hj YI^sx\ xES7!6Y&D@eqd*]Q#D0 aStQdAPQPGFnu |wU?uU-Xf~@1$?5d,Љ֩mXvm)+>1[b@%|[X}YKKglŹs}s]YK},%(QvbCdž_:+j^[&˹,_*m_2~~׹]%k-'zP{P X~,R3#ǻFD:W՛^xy5{=(h\bUqZj[UCoՆRwT?j"LJZ7M|W|gdAz~*ݎѯZ@j&ye 7p$p-%IKcR{X*VX8p=0;!U0rK+YUP@=AΩz4'W3}ssѣrBztzx\/|# x_UB\$:m%\"ɥB4D3VrHEGyq2UNlZΓbH7ȗe5ZyALyr +eVgiC/'iNe.MhKD.ix^shx֊Jb -ZGs.W cO1[R##Wɽ0R |4Zb1z>VWc䬌1Fhtv͌1v]ArZ "iY,EѶE֋hqq]>U%+*% ?w/[+__ciOL`:^*JCqU٫DնZL(6Ͽ-tY⟦i F0⌹v~ /t`sǂ 審g]@mѠ*2pZL(^,dfKlg [ateY7>]qKA4BW _M¢7%`, DxQ60UOy"9xA6w'h12Hct,0@w$Й:Ҟhg=ms&냟Ѯ2ڗG_:u+h>(Yh~&Q1yzح VvQܳ[4sl#)`h>9Od?b&]=E F \Z&ص?z06F1]|z1:^ D\)zW@dÍ q88!4? yxxmf0y5<|dtMaWv00'4 12}QYb c^at50 e_oǍ@ 1O'`GdwC~- ΂߈{17߹~*E}D ݄z]$gWv"m:d\}ʕcN^Lzz aX2 E`,|=/qv6O3y;#,`-1Xłge&)r9Ohˇr!$_2!7v2yxڎ/]iwȝ?ƗHD)+YD濔gVN!7}΋-}EKE3wσK\oV-pLzɬRݫt7z]K=<$ωΉ ]5h,tkrNU^éͫ9Mye;Ot?)_j?]oQKZ/G9OhP9ŻyW5wPykՔ7Uy#U7TxeI+EnTo[ Zo5R˭jZ:LJ^5@uRѪ5Q۬Vk9ʵo]펠GT+YnUv[՜-V mscJ>_@ B=KG9qmr4=ZNqrEztzx\u hEA@8E˩z2䜄/>4x{TU<^x>Wy{##YVpcYI <{Bo*llh2~ C&͟t>r::g ؏i;([.&s( L t/%ΕS@ 1*j@@0n05ekzec`AoK"#@W 873 dQfë⼇r26<8+rǕ.+nJq{,ߴZz[~X(l/!͕?z!Ut븑y =Gy-?#htX zYE{Ftnz8a1;D+47e~eWfyI=`nٽ9ުuT euXgtXmСeSj?#Ac :N/ 3a|5ϳXk6n'Cu; Ԑ (קi-7ޤo/H}+m#3iזVwNy#Zuj̍~S2h&{ҜбB=>=M'h5S[K&!ҩM)b*Qvs?Qvvh8BKkE_-7x'~~rs&39s'Oyv7蔜OljkavqZlx3]pq:8Ƴ_)/OVWu=;~b %8.=m1J r# fE Jb #޼㙪 UiA Z/X~Yp6-`~Ci=v4N_8Gߥ+`4A]1EzMFcx^L4~C%G>nAqdu@֢\r/5B]̪]7hrw\6.c׷iiՊBWPnEyK]-02gX7iwݑ׶3y`urp-}7W2>RRƘ}"]l~:#'7rid)1OVn.X]rH/^5@=R7%MPf%&W+>CX@d]-:]ǜ~//*Z^ @'@#?- xsyۻw!}~Jj{36MyCQ7ն}١h]߽WHL}Sߙg05]MB7 ]E-gO?ufl0+1w.k[MBvݾkoN,c7P/ea <ۆIb7-z3q>f-@a:a:o=xOA]2߲2ɐߵJ⮼*% v۩{I# $`%B^9ߙ=dVlwY薞=}Wx9 d/rBہ71+*B97L"lq6Dv93EE6G?@D=ӅĽ<4og^qvμk xQ=NAy!`܀%{9s x&~E'o{W:{o?8d!הƽ0ۜ޷V?;dv/ٻXhT-ESWNנ3򽿉kٮ<-.>aw#s&ϝd5Ge*?k/'Ž.k}~ܿa7dI._bJx݋^/kỖkۧ7 ӻ{ׯ\v0gN@= 2TBF->P.8yEX- xZ}l;wgcbNI  1_6jh(6XGZں(j*U j (*>RRpC jRT@nvo|g;Mz73ͼ~oHR HWZ`ys <ǾaOW#L XּYw"8\F#Pr(L ^&_ݳqtl~=# }H%>a#dR޾89T$ V'#:1ґ1.ulIVœ-.s(ujj^#h0BUt H?}[fZxD;PV5ѐ${)@Vw{@h8\LGJwၒb~&vzQy340[0&'o3#=~c ?a`aI?b6dGO6tg G׋eҋ vF͋Q3^@(.Bj-'R= QדyǓ0OzOc_ېr08h2@yy}=G;D7aھoo؃Xz>W"oPDZ<[c58O} [ι`i78o ,G^5Ь"NYivo&slʹϕ;zԦgɞdg slakQ6h[8wf+X~x/t%|M١}X7 "}LB_ub tٮ.~dkؿWǟ*gl@7skpF=}%פ9!krA=:=|W$ 5\4i-C)jcYGձo^ۚ$_Iʬ{?gkr}\̚=}mlk|߳d_PsAGS;PUyӝrL>pYVfN~j,jײƧhE5YMmF!=򞌩#gj ZS mWD'jzs)ޗURK_ PxGTL*tϑ^}e6w({zi} : s,| yFڍrG{ b) o.͒u -;~ޏ+9Ur'..e [̬}XvڄT+RR$ug[]MAY>R *p fFwaő6+*;>Cr%Y3<822ّ' A *Ƒ."?(%OV >Jn4|NO {..AulO5>%> _B "G6ĤxH|=HuxӌlJF~>][1PU :w6 PFy0*0ڃ6D~:ep.ʝC0R^hi'9`Dnbg$CB %=joo!?y߃o%b*\H]G$_QC4(kXqG(׀r/GJ; :?FÁMq,qPCAqDx"}sN.s@{`;аF&l'}6!g<ʏSF:cǩ`^(lχBC̬g<[!xxGUpIN=7K~g<Ǿ7vNU8xs+hԂ sqV%;>Lq1 }NN|lyJBEByly 1C'q+RTŐk ͱlj̱w"EMVDvrjvgX 9g01܏?Ww+1y;{\MMf&6! h݄݃o )^&;| {~ \QERvS%TFr_LItx/2QWB&sCC3{vVןgBZ=#ZDjIRɲ?LS!@= QTmc@5cGs3 x pTϾv7%hЬ DDD  #-8"iXbJ`Md2δN3NT 8 i b+gLV:s?}o?I{߽?^4XE26nq=uuKZTkq<hı!"BxZ,_K kx;gdXDa5.aLv:^W -Twj}O݇?*}Ωh->ӫf3#Mۺ{ #6 1S30~7wnLv׵&3u+S6e;3t;3ߊͤŒ> GM~ s8{hY:?mi:MIguiPΕTFG.;"ODbXcTlM&>I3&lYvdfnGO|N'tެ>,'`>B߆F|sh^irfL1!km!!-h4nq*d5jktg1ȩ0STZ&(Vprs#"!MPMX|a?wFce _k X~[w^̮~Ss?۽oH7%` ?ܮ-nb={1x3_&9mutBXb0~V}iF=QߒܘJo\JQSh$ hpj YHx勵䜲1޿t0sdm,>׬AjL?%2 YL.b2_kgQGN,&Ij̨&BbKcOr5^>o>}N8^Tc io҈Iɗ.TA46^t|x+} z!2+'I^[|&a&*c7cr˅b쯟nkw#^ )%׻unBO ]m1`bK(Equ|K"ȮAfr?;D;,ngq]ўk+唸~k>#* ᱰO}}DEvU}a|]3IK"]lvc\7W,L}˶>}R(ߐPzxgz#py3X&Ob?xű?97Ԧ$iTQ@S}AC~#G`j{}ߺ^ uܗJK?&k̼B*\{uzSЯO44V,z!,14v9>)hȯ T{)CRn2_p/HA٦,˧jVr8^s ~L%7@.3|MiJ[Շ=l[J[AUaQQ]cJRiSUwَ+_Sh?@= t\U{!V2cyEs3 xmpTo{ fR*0| ؑ1!Ae2,dXii:-N;tNš0:1*GTR@3С):ԏ{}o~%es?^ ؈C^5 /,P[ `_B4aE_"nDxK}؅+G 9s`FaO)0%%SCkWG*ٛĽIT0b5XȬGtTk%64v"#Q!5I4H rf&ks-]Jy!=ߎd"> G-* ~kzqGb4FѼ :?&MIlPɕ) =$h  TH ?pgtH XMQIzjʱɞmՎI)ߟч$#v! vsQc,˜jWq6-Q@k˕^I6kV!UǠ7[&H GA 0-dAyivknvPsD$dG(MXK.切ѻĠ:2j! !ѧ΋ÛnsΕ-~lzb3U98;.-hCrg Hߌ97 #x4|Q@je!Jm11 @Egy˖d@_=QI U7i1<\ll/A.,~,0ڌ0AipG^x9rj+kx.!%}@9!^4 5YΥCmp$7Ď:/9guxvC&LFB!e!Xr3VU} =r/}2owv{"\%պ8N;Ÿw DUۼ9ϳֵ条%yj\`ӎ~+ύ5.*o5ٓqz"űVSv8'hy"Փn<[4(J`wN~ך%\=wt?/6W㻥=1ݞJ\DYLC_c]qh.0ƝpqyUM*ԶPh;Lt-ْJ%:m)G ,Ŏ^K,5eʜ,s+m~::tȡsIǜt4+F8'^8C#t;t1Hh%clJw-kDwKpUCij3#×o\YL.brXLˉɏQ/,&IzªOՂK0侙i.1yi{)׽E{f湨NDzp2˴^37[sJwuyvԂT}x5>nF|,wxE WVolNPJ*n(茱^لⅾޠF hf(O,9p6:Mk@'وq6=N lDgڥh"%=zN+UAk(~?*S SVYҧP؏ ?P@iߔGm805#ea!twvg+f:'I1vOفC^/PޚOO]"9a˓r}})howoi WWe[o]yH!Ѣ<qZ?пg}7C_hd_eHd/ec!;݋rg75}ѧq3w|?@܄?kQ[ޜKıسVd䎧\AN?mm4 _{[*=T{a}qC;j;*U,>*ICtFS y}2;s*rJ o.b<:?E*IqMb C{6^GcSrmQr=p#cr^=r]{e{z?#ɭcu9G^7x-\mWZy֨ӢL Me{9P.i t~n5 bi8"]2nzO{*VHm)\Q4"~rPr98'@‹cPlP :wߍ'{?Lf3A Z'@:Ns:%d֭Ө,@2 O%: ; xRw#W8.!ΫnNU'zb볺ϴGNV溭VjVx>AWj%Og ( / 00DTimes New Roman(0LL~0DArial Narrowan(0LL~0" DArialNarrowan(0LL~0"0DMonotype Sorts(0LL~0  @n?" dd@  @@`` 4,7,   !    "#$%'*+,&)(o$"$ `@BHX'$"$2TBF-> '"$QTmc >"$t\U{!V -C Pf3f3@8 g4MdMdX~0P ppp@ <4!d!dTzLg4CdCdX~0Pp@ pp<4BdBdTzL? %O ;QNX and Telescope Control)Monitor and Control Engineer MMA Project  IntroductionXThe QNX Real Time Operating System QNX in a telescope control system: the JACARA GMOUNT"The QNX Real Time Operating SystempMicrokernel architecture Scheduling Inter Process Communication Device Drivers Hardware Support Software Support eQNX Microkernel Architecture  All device drivers are independent processes All processes provided with memory protection via virtual memory Microkernel provides process scheduling, IPC, interrupt handling and low-level network accessn RFlat Architecture Monolithic Architecture QNX Microkernel Architecture   QNX Process Scheduling32 Priorities 3 scheduling methods: FIFO, round-robin and adaptive Interrupt latency ~ 3.3 microseconds on P166 Scheduling latency ~4.7 microseconds on P166 QNX Inter Process CommunicationMessages: synchronous communication with acknowledgement Proxies: Non-blocking event notification Signals: Traditional asynchronous inter process communication Device DriversStart up as standard processes Adding new drivers does not affect rest of running system Debug at source level, no kernel rebuilds Hardware SupportgTraditionally embedded x86 applications Now added MIPS and PowerPC Support for ISA, PCI, PCMCIA, PC/104$Software SupportqDevelopment on Windows 95/NT or on QNX development host Watcom C/C++ compiler Remote debuggers Photon microGUI,9) 4QNX in a Telescope Control System: the JACARA GMOUNT$5#(OJACARA System Overview Watchdog process Drivers Time critical sections Hardware JACARAJoint Australian Centre for Astrophysical Research in the Antarctic Generic Mount System ADIMM: Automated Differential Image Motion Monitor AFOS: a UV instrument  System Overview  Watchdog ProcessInitiates startup of entire system Creates shared memory database Reads parameters from file and loads database. Spawns known processes Polls shutdown flag at low rate SIGCHILD signal if a child process terminates$ &  Device DriversmSimple stateless client/server model Commissioning handset Axis control hardware Blinkenlighten GPS receiver l   Time Critical SectionsClose velocity servo loop Encoded axis positions captured every 10 milliseconds Axis control process runs at a higher priority than kernel and with the FIFO scheduling class $R T HardwaretRTD 486 SX processors with co-processors PC/104 stack 3U Eurocard rack-mount ISA bus extended on custom backplane$; ' , QNX SummaryfPros Ease of development Ease of driver testing Cons Proprietary networking Limited processor support4+1g/0 !" # % & ' ()*+-.P ` 3ff` ` ___>?" dF@0?n2d@uK FA@ " d`  n?" dd@   @@``PR   @ ` `PBp>> % ( =   ND zgֳgֳ ?``` z T Click to edit Master title style! !.  H zgֳgֳ ?`` z RClick to edit Master text styles Second Level Third Level Fourth Level Fifth Level!     S  T!zgֳgֳ ?`p z C*  Td!zgֳgֳ ?`  z E*  T!zgֳgֳ ?`@ z E*N  6޽h? ? ___  % H@p ( |    N?gֳgֳ ? `  T Click to edit Master title style! !  H?gֳgֳ ? 0pp   W#Click to edit Master subtitle style$ $  Tzgֳgֳ ?`p  C*  Tzgֳgֳ ?`   E*  Tgֳgֳ ?`@  E*N  6޽h? ? ___4 0 @ ~( K   c $t9 P   z ?* X   C    z    c $9  @ z RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S   c $4:    z A*    s *: `P  z ?*    s *: `  z A* N  6޽h? ? ̙33 ~08( p$" 8 8 c $7 P   z = Mick Brooks   8 c $7    z A*  8 s *8 `P  z KQNX and Telescope Control  8 s *9 `  z A* H 8 0޽h ? ̙33; % `m(  P   # ltgֳgֳ ? 0`    # lgֳgֳ ? @ 0 p    c $ 0 p7  Q Mick Brooks* 2B  s *޽h ? ___ 8 % $(     fgֳgֳ ?P   z   # lTgֳgֳ ?`` z B  s *޽h ? ___ 8 % $(     fgֳgֳ ?PPP     # lgֳgֳ ?@00`  B  s *޽h ? ___ 8 % $( $Qg    ftgֳgֳ ? @@     # lgֳgֳ ?``  B  s *޽h ? ___  bZ\(  \l \ C 4```   F \ S A H \ 0޽h ? ___  bZh(  hl h C ```   F h S AH H h 0޽h ? ___  bZd( )pM@ dl d C ```   F d S AH H d 0޽h ? ___ 8 % $ ( lMMM     fTgֳgֳ ?pp     # lgֳgֳ ?``  B  s *޽h ? ___ 8 % $$(  AX $ $  fgֳgֳ ?     $ # ltgֳgֳ ?``  B $ s *޽h ? ___  8 % $(( * ( (  fgֳgֳ ?P     ( # l4gֳgֳ ?``0  B ( s *޽h ? ___  8 % $,( lg , ,  fgֳgֳ ? @@    , # lgֳgֳ ?``0  B , s *޽h ? ___    (  l  C T   l  C ``  H  0޽h ? ___ 8 % $00( g 0 0  f gֳgֳ ?p`8    0 # lt gֳgֳ ?``  B 0 s *޽h ? ___   @<$(  <r < S   pp   r < S 4 ``  H < 0޽h ? ___  h`PD(  Dr D S    `   F D S A0@H D 0޽h ? ___  `H$( )pM@ Hr H S  ```   r H S T 00   H H 0޽h ? ___   pL$(  Lr L S      r L S ԙ``  H L 0޽h ? ___  P$(  Pr P S 4```   r P S ``   H P 0޽h ? ___  T$(  Tr T S `0   r T S T```p  H T 0޽h ? ___   (  l  C t6  z l  C 6  z H  0޽h ? ___ 0 ~vX( )pM@ XR X 3     | X C ԟ  @   NFIFO process runs until: it yields (makes a kernel call) is preempted Round Robin process runs until: yields is preempted consumes its timeslice Adaptive Consume timeslice: priority is decremented On blocking priority reverts to original Performance claims based on QSSL propaganda. Have measured consistent results for 486SXl/!.E D>   H X 0޽h ? ̙33 0 e]l(  lR l 3     c l C t  @   Modules cannot corrupt kernel Start and stop modules (drivers) without reboot or kernel build Source level debugging Fault tolerance see later example for this: software watchdogs Performance with in MMU segments not overly compromisedH l 0޽h ? ̙33S 0   p( h3T pR p 3      p C   @   Messages proof of receipt potential to reply data send blocked and receive blocked states take process out of ready to run message data NOT copied to kernel (safe because of blocking) Send, Receive, Reply routines: all may go over network transparently May be prioritized Proxies No reply, sender is not blocked Interrupt handler wakes up driver Can be queued Signals Same as trad UNIX, masks and handlers Also provides semaphores Other IPC like pipes are implemented using messages and accessed via C libraryl STH p 0޽h ? ̙33M 0  t( v@p@ tR t 3       t C   @    Some embedded systems adopted the traditional monolithic architecture Protection only for applications Drivers still easy to crash and hard to debugH t 0޽h ? ̙33 0 xD( @@L@ xR x 3      x C T  @   R  VxWorks anybody? Any module can overwrite kernel memory Hard to test Recompile and relink everything to test any changes to any module Few embedded processors had an integrated memory management unit, historically Performance means that MMU protection be sacrificed,KH x 0޽h ? ̙33 0 y|( 0  |R | 3      | C   @   Kernel is never scheduled for execution Entered only as a direct result of kernel calls, either from a process or a hardware interrupt Now we look at what we mean by microkernel, with reference to other architectures commonly in use 8H | 0޽h ? ̙33 0 b( <8 R  3       C 4  @   p:Will look at several issues in the QNX architecture IPC 9H  0޽h ? ̙33 0  ( 0  R  3       C Ԝ  @   .Structure of presentation H  0޽h ? ̙33x 0 80( @@L@ R  3     6  C   @   QNX is a real-time operating system Example of a project where used for telescope control Mick Brooks formerly of Mount Stromlo and Siding Spring Observatoriesy H  0޽h ? ̙33 0 0L( w R  3       C   @   ZMay be removed and added dynamically. Some monolithics allow you to attach dynamically, but they can t be removed, restarted or replaced. Because of transparent network, modules are independent and movable. Thus no need to code for specific system configutations,, H  0޽h ? ̙33i 0 )!@( )pM@ R  3     '  C   @    MIPS is from NEC and is a 64 bit RISC processor Plenty of drivers available for standard devices Common to write your own eg for GPS receivers}H  0޽h ? ̙33L 0  P(  R  3        C t  @   &Great compiler, GNU also ported Support for X windows Note small exectubles: Web server fits on 1.44MB floppy Pros Good user community support Easy to produce ROM-able images Cons: TCP/IP is and addon, and not implemented efficiently Proprietary networking system non-standard debugger4v>l',C }XH  0޽h ? ̙33f  0 &p(  R  3     $  C 4  @   Generic mount: supports up to two flange mounted instruments. Alt-az mount, with serial port interfaces for mount control from instrumentationBJH  0޽h ? ̙33:  0 (  R  3       C T  @   bGPS driver is state-driven and used in heliostat Final accurate timing TBD, maybe TAC (GPS based)' 2H  0޽h ? ̙33  0 B:(  R  3     @  C   @   fMakes no kernel calls; responds to the timer interrupt with a fixed latency. Triggers opcon process, running at lower priority to service other non-critical hardware such as handset switches, console pushbuttons and LED flashing. Refraction and astrometrical transform matrices recalculated every 30 seconds. Shared memory locking maintained by priority incrementation Note that the kernel scheduling granularity must be set to something quite low like 1ms rather than the default of 10ms to achieve interrupt rates of 10ms. This may be set up in the /etc/config/sysinit file by using the ticksize utility. ^W     H  0޽h ? ̙33 0 .( ,  R  3       C   @   <Reliability of x86 and PC/104 Heliostat system running for 18 months with no faults One failure of a co-processor not detected & Ran off hard disks Eventually use disk on chip FLASH disks Most problems with in-house h/w designs (backplane, grounding),   H  0޽h ? ̙33m 0 -%`(  R  3     +  C Ԣ  @   Discuss a specific application of QNX to a remote site testing alt-az mount explain about the project software system overviewetc,C2 H  0޽h ? ̙334  0 ( = b" R  3       C   @   `Decides whether to shut down the entire system or attempt to restart processes which terminate. ` H  0޽h ? ̙33  0 kc(  R  3     i  C   @   Data flow diagram, simplified to generic subsystems note s/w watchdog, user input (probably from serial port in GMOUNT) axis control (loop closure) and astrometry routines examples of system specific processes /H  0޽h ? ̙33A 0 P( ?**  R  3     z  C =  @  z iComparison with RT Solaris extensions. No contest. Similar to VxWorks with caveats mentioned previously@"H  0޽h ? ̙33rb)#\25G8:BmEHJEO.QSUWqY][= A)_Q?beiLlHor+tvx|eM~LlI]Ж.Oh+'0 px     (4<QNX and Telescope ControlimbrooksbroBrian GlendenningCo29aMicrosoft PowerPoint 7.0i@+:@Si{@nr{@YG%  1&; &&#TNPP0D zc & TNPP &&TNPP   ; --- !@---& 4&9 P|w|wgw9 P - &, !4& --Zm-- "Arial Narrow|w|wgw - .2 uQNX and-*& $#. .!2 uTelescope Control# ! #$ )$##.--:-- "Arial9 Q|w|wgw9 Q - .12 AMonitor and Control Engineer . .2 A MMA Project .--S:-- Times New Roman|wgw - .2 tAMick  .Times New Roman|wgw9 R - .2 tBrooks  .-- "Systemw+f   -&TNPP &՜.+,D՜.+,     g OverheadeNRAOead1 Times New Roman Arial NarrowArialMonotype SortsDefault DesignQNX and Telescope Control Introduction#The QNX Real Time Operating SystemQNX Microkernel ArchitectureFlat ArchitectureMonolithic ArchitectureQNX Microkernel ArchitectureQNX Process Scheduling QNX Inter Process CommunicationDevice DriversHardware SupportSoftware Support5QNX in a Telescope Control System: the JACARA GMOUNTJACARASystem OverviewWatchdog ProcessDevice DriversTime Critical Sections Hardware QNX Summary  Fonts UsedDesign Template Slide Titlesem  ! - 5 =EMU]emu} _PID_GUID TemplateType GraphicType Compression ScreenSize ScreenUsage MailAddress HomePage Other DownloadOriginal DownloadIEButton UseBrowserColor BackColor TextColor LinkColor VisitedColorTransparentButton ButtonType ShowNotes NavBtnPos OutputDirAN{A8AAB190-F44C-11D2-9C57-00104B3D8CFC}dutphttp://www.nrao.edu/Real_Time/tttp  f3 I:\ttmp\Real_Timeu/)_ݙBrian Glendenning  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkmnopqrsuvwxyz{}~Root EntrydO)Pictures:Current User|SummaryInformation(lPowerPoint Document(DocumentSummaryInformation8t