ساخت تلفن سانترال
در این بخش دانلود پروژه ساخت تلفن سانترال Central Telephone با میکروکنترلر AVR, توسط تیم الکترونیک و برنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. به علت پاره ای از مسائل از قبیل محدودیت در واگذاری خطوط آزاد تلفن از طرف شرکت های مخابرات, ملاحضات اقتصادی یا برخی شرایط خاص, استفاده از تلفن سانترال اجتناب ناپذیر به نظر می رسد.
در یک سیستم تلفن سانترال, تعدادی خط آزاد در پورت ورودی به تعداد بیشتری خط داخلی در پورت خروجی تبدیل می شوند که این امر می تواند سازو کاری برای بهینه سازی استفاده از خطوط تلفن, خصوصا در نقاط شلوغ شهر به وجود آورد. هدف از انجام این پروژه, طراحی و ساخت یک سیستم تلفن سانترال یک به چهار است که می تواند مبنای کار پروژه های کاملتر قرار گیرد.
ویژگی های یک سیستم تلفن سانترال
در طراحی یک سیستم تلفن سانترال می توان ویژگی های گوناگونی را در نظر گرفت. در این بخش، به چند مورد از مهمترین عوامل دخیل در فرآیند طراحی یک سیستم تلفن سانترال می پردازیم:
1- یک سیستم تلفن سانترال، شبانه روزی و بی نیاز از اپراتور است.
2- از نظر سخت افزار، بهینه و از نظر هزینه، مقرون به صرفه است.
3- می توان توسط کامپیوتر، وضعیت لحظه به لحظه شبکه را مانیتور کرد.
4- امنیت شبکه به راحتی فراهم و در دسترس است.
5- امکان شماره گیری و برقراری ارتباط با خارج از سیستم وجود دارد.
6- می توان برقراری تماس های داخلی را ممکن نمود.
شرح کلی پروژه
پروژه سیستم سانترال، بسیار گسترده است، بنابراین در این پروژه قصد داریم به طراحی یک سیستم تلفن ساده بپردازیم. این پروژه مربوط به طراحی یک سیستم سانترال 1 به 4 است، که دارای 1 خط آزاد در پورت ورودی و 4 خط داخلی است. در این مدار، از پیغام و تن بر روی خط استفاده نشده است. قرار دادن پیغام بر روی خط، امکانی است که می تواند به آسانی به این پروژه اضافه شود که برای این منظور می توانید از پروژه ضبط و پخش صدا استفاده کنید.
هر گاه کاربری بخواهد با یکی از 4 کاربر داخلی تماس بگیرد، باید پس از شماره گیری به محض اشغال شدن خط، یکی از اعداد 1 تا 4 را از روی گوشی خود وارد کند و منتظر بماند تا تماس برقرار گردد. در این سیستم، هر گاه یکی از کاربران داخلی خط را اشغال کند، خط برای تمام کاربران داخلی دیگر اشغال خواهد بود.
در پروژه سیستم تلفن سانترال طراحی شده، مدار ابتدا به تشخیص زنگ می پردازد. که این کار توسط مدار آشکار ساز زنگ (Ring Detector) که نقشه شماتیک آن در ادامه ارائه شده انجام می گیرد. در ادامه پس از آشکار سازی زنگ مدار اشغال ساز خط فعال می شود و خط تلفن را اشغال می کند. در این حالت، بوق بازگشتی زنگ قطع می شود و فرد تماس گیرنده یکی از اعداد 1 تا 4 را روی گوشی تلفن خود وارد می کند.
سیگنال DTMF ارسال شده توسط تراشه DTMF Decoder رمزگشایی می شود و سپس خط تلفن به یکی از خطوط داخلی 1 تا 4 وصل می گردد. اکنون نوبت ارسال زنگ برای این کاربر داخلی است، اما دیگر از طرف مخابرات محلی سیگنال زنگ ارسال نمی گردد تا آن را به کاربر داخلی ارائه دهیم، بنابراین باید سیگنال مورد نیاز AC زنگ را در خود سیستم سانترال تولید کنیم. این امر وظیفه مدار مولد زنگ (Ring Generator) است که نقشه شماتیک مدار آن در ادامه آمده است.
پس از آن مدار منتظر می ماند تا کاربر گوشی خود را بر دارد. اگر پس از ارسال 10 زنگ این امر اتفاق نیفتد سیگنال زنگ، قطع و خط ورودی، آزاد می شود و مدار به حالت اولیه خود در می آید. چنانچه داخلی مورد نظر گوشی خود را بردارد، مدار آن را تشخیص می دهد و خط ورودی اشغال شده را به داخلی مورد نظر انتقال می دهد و مکالمه برقرار می شود. به محض پایان مکالمه، مدار دوباره به حالت اولیه خود باز می گردد و منتظر تماس بعدی می ماند. برداشته شدن گوشی، توسط شارش جریان در داخلی تشخیص داده می شود و پایان مکالمه نیز توسط مداری به نام In Use Circuit تعیین می گردد که وضعیت آزاد یا اشغال بودن خط را کنترل می کند. نقشه شماتیک این مدار در ادامه درج شده است.
نقشه شماتیک مدار آشکار ساز زنگ Ring Detector
نقشه شماتیک مدار تعیین وضعیت آزاد یا اشغال بودن خط In Use Circuit
مدار مولد زنگ (Ring Generator) با استفاده از تراشه تایمر 556
مدار نشان داده شده در تصویر زیر، یک مبدل ولتاژ مستقیم به متناوب است که توسط تایمر 556 پیاده سازی شده است و ولتاژ 12 ولت مستقیم DC را به منظور تولید سیگنال زنگ به یک ولتاژ متناوب 70 Vac جایگزین می کند. این مولد زنگ در هر 10 ثانیه یکبار سیگنال زنگ را در خروجی خود تولید می کند.
نقشه شماتیک کامل پروژه ساخت تلفن سانترال با میکروکنترلر AVR
میکروکنترلر انتخاب شده برای این پروژه میکروکنترلر ATtiny2313 است. این میکروکنترلر را با توجه به نیاز مدار و کارایی بالای آن برگزیده ایم. ATtiny2313 به سهولت جایگزین تراشه AT90S2313 از خانواده AVR شده است و امکانات گسترده تری را ارائه می کند. این تراشه دارای 2 وقفه خارجی, 18 پورت I/O و ارتباط سریال است, یعنی تمام چیزی که ما در این پروژه به آن نیاز داریم و آن را به تراشه 20 پایه هم ردیف خود از خانواده AVR یعنی ATtiny26 (یک وقفه خارجی و 15 پورت I/O) ترجیح داده ایم.
سخت افزار پروژه
نقشه شماتیک مدار پروژه سیستم تلفن سانترال در تصویر بالا نشان داده شده است. همانطور که مشاهده می کنید، اولین بخش مدار اصلی، یک مدار آشکارساز زنگ است، خروجی این مدار یعنی مدار آشکارساز زنگ Ring Detector به وقفه سخت افزاری Int0 میکروکنترلر می رود. با آمدن اولین زنگ و ایجاد اولین پالس وقفه , رله RL1 تحریک و خط تلفن اشغال می شود. مقاومت 330 اهم یک وات, مقاومت اشغال ساز خط تلفن است. اکنون مدار آماده دریافت سشگنال DTMF از مبدا است, بنابر این خط اشغال شده در اختیار مدار آشکار ساز تن DTMF, یعنی تراشه MT8870D قرار می گیرد.
خروجی باینری تراشه MT8870D به پایه های PB4 تا PB7 میکروکنترلر می رود و پایه StD, پالس وقفه Int1 میکروکنترلر AVR را فراهم می کند. با آمدن این پالس عدد Latch شده باینری از پورت خوانده می شود و رمزگشایی می گردد. از آنجا که هر دو وقفه Int0 و Int1 از نوع Falling در نظر گرفته شده, مقاومت های بالاکش R1 و R6 در مدار تعبیه شده اند. اکنون متناسب با عدد رمزگشایی شده که یکی از اعداد 1 تا 4 است, یکی از رله های RL3 تا RL6 و RL7 تحریک می شوند و سیگنال زنگ توسط مدار Ring Generator برای تلفن داخلی مورد نظر ارسال می گردد.
از طریق مقاومت R2 و پایه PB2, میکروکنترلر از برداشته شدن گوشی توسط مشترک داخلی مطلع می گردد. در حقیقت در لحظه برداشته شدن گوشی داخلی, پایه PB2, منفی می شود. پریود زنگ 10 مرتبه ادامه می یابد و در صورت عدم پاسخ کاربر داخلی, مدار به حالت پایه خود باز می گردد, اما در صورت برقرار شدن مکالمه, مدار دیگری به نام In Use Circuit منتظر می ماند تا داخلی مورد نظر گوشی خود را بگذارد. در این حالت, ولتاژ DC خط تلفن به 48V باز می گردد و مدار In Use Circuit از طریق پایه PB3, میکروکنترلر را مطلع می کند. سپس میکروکنترلر AVR مدار را به حالت پایه بر می گرداند و منتظر تماس بعدی می ماند.
برنامه میکروکنترلر در محیط نرم افزار Bascom-AVR
1 2 3 4 5 6 7 8 9 10 11 12 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
'--------------------------------------------- ' Program of Telephone Central '--------------------------------------------- $regfile = "ATtiny2313.dat" $crystal = 1000000 Config Timer1 = Timer , Prescale = 1 Config Timer0 = Timer , Prescale = 1 Enable Interrupts Enable Timer1 Enable Timer0 Enable Int0 Enable Int1 Config Int0 = Falling Config Int1 = Falling Stop Timer1 Stop Timer0 On Int0 Exint0 On Int1 Exint1 Enable Ovf1 On Ovf1 Tim1ovf Enable Ovf0 On Ovf0 Tim0ovf Timer1 = 15536 Tcnt0 = 6 Config Portb = &B00000011 Config Portd = &B01110000 Config Porta = &B00000011 '---------------------------------------------- Dim A1 As Bit , A2 As Bit Dim A3 As Byte , A4 As Byte , A5 As Byte , A6 As Byte Dim A7 As Byte , A8 As Byte , A9 As Byte Dim B1 As Word '---------------------------------------------- A1 = 0 : A2 = 1 : A4 = 0 : A5 = 1 : A7 = 0 : A9 = 0 Portd.6 = 1 : Portd.4 = 1 : Portd.5 = 1 : Porta.0 = 1 Porta.1 = 1 : Portb.0 = 1 : Portb.1 = 1 '---------------------------------------------- Cc: Do Dd: If A4 = 0 Then Goto Dd Portb.1 = 0 Ee: Start Timer0 If A1 = 1 Then Stop Timer0 Portb.1 = 1 A4 = 0 A1 = 0 Exit Do End If If A2 = 1 Then Goto Ee Stop Timer0 A2 = 1 Waitms 1 A3 = Pinb A3 = A3 And &B11110000 Rotate A3 , Right , 4 A3 = Hex(a3) A3 = Hexval(a3) Select Case A3 Case 8 : Porta.0 = 0 Case 4: Porta.1 = 0 Case 12: Portd.4 = 0 Case 2: Portd.5 = 0 Case Else A4 = 0 Portb.1 = 1 Exit Do End Select Aa: If A7 = 0 Then Portd.6 = 0 Waitms 1000 Portd.6 = 1 Portb.0 = 0 A8 = 0 Incr A9 Start Timer1 End If If Pinb.2 = 0 Then Stop Timer1 : Portb.0 = 1 : Portb.1 = 1 Bb: If Pinb.3 = 0 Then Portb.1 = 1 : Porta.0 = 1 : Porta.1 = 1 : Portd.4 = 1 : Portd.5 = 1 : A4 = 0 : A7 = 0 Exit Do End If Goto Bb End If If A9 = 10 Then Stop Timer1 : Porta.0 = 1 : Porta.1 = 1 : Portd.4 = 1 : Portd.5 = 1 Portb.1 = 1 : Portb.0 = 1 : Portd.6 = 1 : A9 = 0 : A4 = 0 : A7 = 0 Exit Do End If Goto Aa Loop Goto Cc End '---------------------------------------------- Exint0: A4 = 1 Return '---------------------------------------------- Exint1: A2 = 0 Return '---------------------------------------------- Tim1ovf: A7 = 1 Incr A8 If A8 = 80 Then Decr A7 Return ''---------------------------------------------- Tim0ovf: Incr B1 If B1 = 40000 Then A1 = 1 Return '---------------------------------------------- 'End of Program '---------------------------------------------- |
شرح برنامه میکروکنترلر به زبان بیسیک
برای این پروژه، برنامه میکروکنترلر به زبان Basic نوشته شده است. کدهای برنامه شامل 1324 بایت از حافظ فلش است. برنامه برای میکروکنترلر ATiny2313 نوشته شده است. پس از تعاریف و اعلانات اولیه، برنامه در حافظه DD منتظر آمدن زنگ می ماند. با آمدن اولین سیگنال زنگ، پالس پایین رونده به Int0 اعمال می شود، A4 برابر یک می شود و برنامه از حلقه DD خارج می گردد. سپس با تغییر حالت PB1 میکروکنترلر، خط تلفن اشغال می شود. پس از آن مدار در حلقه EE ده ثانیه منتظر می ماند تا تماس گیرنده عدد داخلی را وارد کند.
نحوه رمزگشایی کد DTMF در برنامه
اگر در این مدت کدی دریافت نشد، مدار به حالت اولیه خود باز می گردد. این زمان توسط شمارش دفعات سریز شدن تایمر صفر تولید می شود. با توجه به مقدار اولیه تایمر 8 بیتی بودن آن و کلاک سیستم، در هر بار سرریزی زمانی معادل 250 میکروثانیه تولید می شود. بنابراین باید 40000 بار سرریزی اتفاق بیفتد تا 10 ثانیه بگذرد.در خلال این مدت اگر کدی از ورودی وارد شود، پایه StD تراشه MT8870D یک پالس پایین رونده به Int1 می دهد و در زیر روال وقفه خود مقدار A2 رابرابر صفر می کند که این به منزله خروج از حلقه EE است.
در این صورت تایمر صفر، خاموش می گردد و کد DTMF رمزگشایی شده خوانده می شود. اگر این کد غیر از اعداد 1 تا 4 باشد، مدار آنرا نمی پذیرد و به حالت اولیه خود باز خواهد گشت. در صورت درستی عدد دریافتی، سیگنال زنگ برای داخلی مورد نظر ارسال می شود.
برای تولید بازه 4 ثانیه ای بین هر دو زنگ از سرریز تایمر یک استفاده شده است. از آنجا که تایمر یک در مقدار اولیه 15536 بارگذاری شده است، در هر 80 بار سرریزی 4 ثانیه تولید می کند. اگر در خلال این 4 ثانیه پایه PB2 صفر شود، بدان معناست که گوشی توسط داخلی مورد نظر برداشته شده است. اکنون برنامه در حلقه BB باید منتظر بماند تا گوشی داخلی گذاشته شود که در نتیجه آن PB3 صفر می گردد. در این لحظه تمامی مقادیر متغیر به مقدار اولیه باز می گردند و برنامه منتظر تماس بعدی می ماند.
توجه : برای درک هر چه بهتر این پروژه به شما پیشنهاد می کنیم, ابتدا پروژه (کنترل وسایل الکتریکی با آی سی MT8870D توسط خط تلفن) را مطالعه نمائید.
سلام در ترانس 24 به 220 آیا بعد از خروجی 220 به انسان برخود کند خطر برق گرفتیگیدارد؟
سلام دوست عزیز
به شرط اطمینان از ایزوله بودن خروجی ترانس برخورد و یا لمس خروجی ترانس (قسمت 24 ولت) خطری ندارد. البته برای اطمینان بیشتر قبل از تماس دست با خروجی ترانس بهتر است یکبار ولتاژ خروجی ترانس توسط یک ولتمتر AC اندازه گیری شود.
سلام وقتتون بخیر
زمین منبع تغذیه 5 ولت در IN USE CIRCUI با زمین بقیه مدار یکی نیست؟؟؟
و سوال دوم :RING- همان زمین کل مدار است؟
سوال سوم:ورودی ترانس 12V\500mAو خروجی 70v_ac\30hz میباشد؟؟ خروجی چند آمپر باشد؟؟؟
ممنون میشم راهنمایی بفرمایید.
سلام دوست عزیز
همانطور که در نقشه شماتیک مدار In Use Circuit مشاهده می کنید تغذیه آن توسط یک باتری تامین شده است و به صورت کلی طراحی آن جدا از تغذیه اصلی مدار می باشد. اما زمانیکه بخواهیم از این مدار در نقشه کامل پروژه استفاده کنیم باید طبق نقشه شماتیک اصلی پروژه منفی را در تمام مدار مشترک بگیریم.
خط تلفن دارای دو سیم است یکی به نام Ring و دیگری به نام Tip که یکی از آن ها را با منفی تغذیه طبق نقشه شماتیک مشترک می کنند. زمین کل مدار شما قطب منفی منبع تغذیه مدار شما می باشد.
در پاسخ به سوال سوم نیز، ترانس درج شده برای مولد پالس زنگ یک ترانس افزاینده 24 به 220 با خروجی 500 میلی آمپر می باشد.
سلام مجددو عذرخواهی
من میخوام بجای باتری منبع تغذیه بزارم منفیشو با منفی مدار اصلی یکی کنم؟
اگر یکی کنم مقاومت 10Mدر مدار in use circuit اتصال کوتاه میشود مشکلی ندارد؟
ممنون
سلام دوست عزیز
بله باید منفی مدار را در تمامی قسمت ها مشترک کنید. مطابق نقشه شماتیک قسمت Ring Detector سیم RING را به دیود پل متصل کنید و سپس منفی قسمت In Use Circuit را به منفی مدار Ring Detector متصل کنید.
سلام
1-فرکانسی که درring generatorها ی مدارات نشان داده شده با فرکانس برنامه(یک ثانیه وصل وچهار ثانیه قطع) یکی نیست
2-مسیر رلهRL7برایم نامفهوم می باشدوقتی به ring generator وصل میشودچگونه پایه R2 صفر میشودچون در حالت وصل ringgeneratorمسیرکنتاکتRL2قطع است
ممنون
سلام دوست عزیز
لطفا توجه داشته باشید مدار ring generator فقط و فقط سیگنال زنگ تولید می کند و وظیفه قطع و وصل سیگنال زنگ به عهده میکروکنترلر است که اینکار توسط رله RL7 در مدار انجام می شود. یعنی شما باید طبق نقشه های شماتیک یکی از دو خروجی مدار ring generator را به پایه مشترک رله RL7 متصل کنید و خروجی دوم مدار ring generator را به صورت مشترک به دیگر پایه های تلفن داخلی متصل کنید.
سلام
فیبر مدارچاپی و لیست قطعات کجاست؟
چطور میتونم دانلود کنم
با سلام و احترام
این پروژه فاقد طرح PCB می باشد و شما باید خودتان آنرا با توجه به نقشه شماتیک طراحی کنید.
سلام لطفا طرحpcb رو طراحی کنید