اطلاعیه

Collapse
No announcement yet.

دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

    سلام بر جمیع اهل علم
    دوستان همونطور که از عنوان مشخصه من می خوام 16 خط (که البته شماره تلفن مشترک دارن) رو به میکرو وصل کنم و هر تماسی که با این شماره گرفته میشه (از هر کدوم از این 16 خط ) ساعت و تاریخش رو روی یه نرم افزار روی کامپیوتر ذخیره کنم.تا یک آمار روزانه از تماسهای گرفته شده داشته باشم.
    اول اینکه یه اطلاعاتی در مورد پالسی که از شبکه میاد لازمه.
    دوما" از چه تجهیزی از میکرو باید استفاده کنم (که فکر کنم a/d باشه دیگه)
    سوم اینکه تاریخ و زمان روی پالس موجوده یا نه ؟ و در هر دو صورت بهتره از ساعت و تاریخ ویندوز بهره بگیرم یا خود پالس
    چهارم چه زبان برنامه نویسی ویژوالی برای ارتباط میکرو با کامپیوتر بهتره . و از چه پورتی (فکر کنم پورت موازی ...نه؟) و در مورد چگونگی ارتباط و برنامه نویسی
    البته شرمنده دوستان .سوالات زیاد شد . معذرت
    با سپاس فراوان
    مولای من
    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

    #2
    پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس ترجیحا" بر روی کامپیوتر

    در همین انجمن مدار تلفن با PIC و AVR موجوده. با جستوحو در گوگل میتونید نتایج رو ببینید.
    اما اگر بخوام این سوالتون رو بی پاسخ نگذارم باید عرض کنم که از IC MT8870 استفاده کنید
    دیتاشیتش رو که دانلود بفرمایید اطلاعاتی در مورد راه اندازی و ... داخلش هست.

    دیدگاه


      #3
      پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس ترجیحا" بر روی کامپیوتر

      با سلام


      برای ارتباط با کامپیوتر میتونی از پورت سزیال یا usb ( البته میتونی باترشه ft232 تبدیل سریال به usb هم کار کنی) استفاده کن چون دیگ معمولا در کامپیوتر های جدید بیشتر پورت های usb قرار داره تا سزیال و موازی.

      برای ارتباط با هم می تونی برنامه رو با vb6 یا vc#.net بنویسی (البته بستگی به خودت داره که با چه زبانی راحتتر باشی) ولی من خودم با جفتش کار کردم که #C قدرت زیادتری داره .

      برای تاریخ هم بهتره از ساعت خود ویندوز استفاده کنی چون هم قطعات سخت افزاری کاهش پیدا میکنه و هم مانور دادن با برنامه کامپیوتر راهتر از میکرو است.

      برای تشخیص تن های روی خط هم میتونی از تراشه mt8870 یا mt8888 (یا تراشه های دیگه که من الان حضور ذهن ندارم نام ببرم استفاده کنی)

      خوب تا حالا مراحل ساده کار بود ولی تا چه فکری کردی که اگه 16 خط با هم بخوان یکدفعه تماس بگیرن چه طوری اونا رو مانیتور کنی؟ :question:



      دیدگاه


        #4
        پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس ترجیحا" بر روی کامپیوتر

        سلام و ممنون
        من می خوام در ضمن اینکه این پروژه رو انجام میدم یه زبان ویژوال و دیگر موارد رو هم یاد بگیرم.(در حین پروژه خوب یاد گیری بهتره).
        آیا همین #c پورت usb رو ی شناسه؟
        و آیا می تونم با A/D و شیوه مالتی پلکس هر بار یکی رو بخونم؟
        اگه راه خوبی نیست آیا شما پیشنهادی دارید؟
        و اینکه دقیقا" زمان و تاریخ رو چطور باید از ویندوز در بیارم؟
        متشکر از الطافتان :biggrin:
        مولای من
        نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

        یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

        دیدگاه


          #5
          پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس ترجیحا" بر روی کامپیوتر

          نوشته اصلی توسط صادق ساعی اصفهانی
          سلام و ممنون
          من می خوام در ضمن اینکه این پروژه رو انجام میدم یه زبان ویژوال و دیگر موارد رو هم یاد بگیرم.(در حین پروژه خوب یاد گیری بهتره).
          آیا همین #c پورت usb رو ی شناسه؟
          و آیا می تونم با A/D و شیوه مالتی پلکس هر بار یکی رو بخونم؟
          اگه راه خوبی نیست آیا شما پیشنهادی دارید؟
          و اینکه دقیقا" زمان و تاریخ رو چطور باید از ویندوز در بیارم؟
          متشکر از الطافتان :biggrin:
          ببین دوست عزیز من اصلا توصیه نمیکنم که د رحین همین پروژه به یادگیری یه زبان ویژیال اونم #C بپردازی( اخه خیلی وقت میبره ) بهتره با یه برنامه نویس همکاری کنی

          توی #C مستقیما برای USB کلاسی تعریف نشده(البته تا اونجا که میدونم) ولی میتونی کلاس اونو از اینترنت پیدا و دانلود کنی. من برای اینکار استفاده از سریال تبدیل شده به usb رو پیشنهاد میکنم چون هم پروتکل سریال ساده تره وهم توابع اون مستقیم وجود داره ولی پروتکل usb خیلی از rs232 پیچیده تره.

          برای این پروژه احتیاج به استفاده ازadc نیست همین طور که قبلا هم گفتم اگه بخواهیم تمامی خط ها رو به صورت هم زمان کنترل کنیم نمیتونیم از ماکس استفاده کنیم چون ما باید تن های رو بگیریم و به آشکارساز تن تحویل بدیم نمیشه که تن یه خط رو بگیریم و وسطش بریم تن خط بعد تحویل بدیم فکر نکنم عملا ای روش جواب بده .

          تنها جوابی که الان تو ذهنمه اینه که هر خط به بوسیله یه AVR کوچیک با یه آشکار ساز جداگانه کنترل کنیم بعد اطلاعات هر کدومو به صورت شبکه به یه میکرو مستر تحویل بدیم و اون میکرو بتونه با کامپیوتر ارتباط داشته باشه ولی این جواب من تنها یه راه حل فوریه که معلوم نیست عملا کار کنه یا نه ولی احتمال زیاد الگوریتم کار همینه.

          برای خوندن تاریخ وزمان ، هم VB6 و هم #C تابع آماده دارند.

          موفق باشی.

          دیدگاه


            #6
            پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس ترجیحا" بر روی کامپیوتر

            سلام و ممنون
            من چند تا راه پیدا کردم (برای تشخیص زنگ )
            1) اینکه ولتاژ رو با تقسیم مقاومت بشکنم و به یک مالتی پلکس آنالوگ بدم.و پایه های آدرس مالتی پلکس رو با میکرو رفرش کنیم و خروجی ماکس رو با میکرو بخونم.
            2)ولتاژ رو با یکسو ساز dc کرده به میکرو بدم (چون فقط تشخیص دادن وجود زنگ رو داریم)
            و یه فایلی هم بود از آقای حامد حقیقی و مدار پیشنهادی آقای نحوی که مدار و توضیحات خیلی خوبی داشت و مربوط به ظبط مکالمات تلفنی بود.
            با سپاس
            مولای من
            نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

            یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

            دیدگاه


              #7
              پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس تبر روی کامپیوتر

              سلام
              پیشرفتی که بنده تا الآن داشتم (البته اگه برای کسی اهمیت داشته باشه):
              مدار رو با همون تقسیم ولتاژ و مالتی پلکس آنالوگ بستم (cd4067be ) خروجی mux رو به A/D دادم.
              بعد با میکرو پایه های آدرس ماکس رو آدرس دهی کرده و تعریف کردم که اگه ورودی A/D (رجیستر ADCW کمتر از 100 بود که البته با فرمولش عدد ADCW رو حساب کردم) txd از پورت سریال رو یک کنه وگرنه صفر .(هر بار یک خط از 16 تا رو می خونم )
              (یعنی با زمانی که تماس برقرار شده کار کردم نه زمانی که زنگ می خوره .چون زمانیکه تماس برقرار شده افت ولتاژ زیادی هست و روی صفر منطقی هستیم ).
              خروجی پورت سریال رو هم به max232 دادم و به txd پورت سریال کامپیوتر.
              برنامه میکرو هم به شرح زیر است:
              #include <mega32.h>
              #include <delay.h>
              #define xtal 11059200
              void init(void);


              void main (void)
              {
              char ref[16]={0x00,0x01,0x02,0x03,0x04,0x05,
              0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f} ;
              char i=0;
              DDRA=0;
              PORTA=255;
              DDRC=255;

              ADMUX=0b 01000000;
              ADCSRA=0b 11000110;


              while(1)
              {
              while(!(ADCSRA && 16));
              ADCSRA |=16;
              for (i=0;i<=16;i++)
              {
              PORTC=ref[i];
              if (ADCW<100) init();
              ADCSRA |=64;


              } //for
              } //while
              } //main


              void init (void)
              {
              DDRD=0b01000000; //TXD=1
              PORTD=0x00;
              UCSRA=0x00;
              UCSRB=0x08; //Txen=1
              UCSRC=0x86;
              UBRRH=0x02; //baud rate=1200bps
              UBRRL=0x3F;
              } // init

              حالا چند تا سوال:
              1)برنامه و شیوه استفاده از پورت سریال درسته؟
              2)توی دور دوم عملیات رفرش و خوندن که مثلا" دوباره خط 1 رو خوندم اگه از حالت قبل هنوز خط مشغول باشه چطور می تونم این حالت رو با تماس جدید تشخیص بدم؟



              ممنون اگه پاسخ بدین
              مولای من
              نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

              یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

              دیدگاه


                #8
                پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                سلام
                از مدیران تقاضا دارم اگه ممکنه پاسخ بدن
                با تشکر :bye
                مولای من
                نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                دیدگاه


                  #9
                  پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                  سلام
                  خیلیییییییییی ممنونم. :rolleyes:
                  مولای من
                  نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                  یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                  دیدگاه


                    #10
                    پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                    سلام
                    ایول بابا یعنی هیچ کس نیست تو ای سایت که با پورت سریال کار کرده باشه ؟ oo:
                    مولای من
                    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                    دیدگاه


                      #11
                      پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                      سلام,
                      دوست عزیز من از Codevision زیاد سردر نمیارم ولی من میتونم تو برنامه نویسی کامپیوتر (#C) کمکتون کنم. و بسکام.

                      دیدگاه


                        #12
                        پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                        سلام
                        آیا اگه بخوام فقط یه بایت 01 (txd=1,rxd=0) رو برای کامپیوتر و پورت سریالش بفرستم نیاز به استفاده از پورت سریال میکرو و max232 دارم ؟
                        مولای من
                        نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                        یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                        دیدگاه


                          #13
                          پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                          نوشته اصلی توسط صادق ساعی اصفهانی
                          سلام
                          آیا اگه بخوام فقط یه بایت 01 (txd=1,rxd=0) رو برای کامپیوتر و پورت سریالش بفرستم نیاز به استفاده از پورت سریال میکرو و max232 دارم ؟
                          سلام بر هم استانی(منم کنار خودتونم! 3 vilege)

                          بگذریم!

                          در مورد max232 بله باید استفاده کنی چرا؟ چون صفرو 1 داخل پورت سریال کامپیوتر 0 ولت و 5 ولت نیست! -11 ولت و 11 ولت هست(ولتاژش رو شک دارم!)...

                          خوب برای استفاده از پورت سریال میتونی از ویژوال بیسیک 6 استفاده کنی... راحت تره . من یه کنترل رله با 5 خروجی باهاش درست کردم و گزاشتم تو سایت + سورس میکرو و ویژوال بیسیک...

                          البته داخل اون به جای پورت سریال از پو رت یو اس بی استفاده کردم و از یه دونه FT232 که کار اف تی اینه که یه پورت سریال برای کامپیوتر درست میکنه!.... که دیگه نیازی به مکس 232 نیست

                          خوب بزار بقیه ی پست ها رو بخونم تا بقیشم بگم!

                          دیدگاه


                            #14
                            پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                            نوشته اصلی توسط صادق ساعی اصفهانی
                            برنامه میکرو هم به شرح زیر است:
                            #include <mega32.h>
                            #include <delay.h>
                            #define xtal 11059200
                            void init(void);


                            void main (void)
                            {
                            char ref[16]={0x00,0x01,0x02,0x03,0x04,0x05,
                            0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f} ;
                            char i=0;
                            DDRA=0;
                            PORTA=255;
                            DDRC=255;

                            ADMUX=0b 01000000;
                            ADCSRA=0b 11000110;


                            while(1)
                            {
                            while(!(ADCSRA && 16));
                            ADCSRA |=16;
                            for (i=0;i<=16;i++)
                            {
                            PORTC=ref[i];
                            if (ADCW<100) init();
                            ADCSRA |=64;


                            } //for
                            } //while
                            } //main


                            void init (void)
                            {
                            DDRD=0b01000000; //TXD=1
                            PORTD=0x00;
                            UCSRA=0x00;
                            UCSRB=0x08; //Txen=1
                            UCSRC=0x86;
                            UBRRH=0x02; //baud rate=1200bps
                            UBRRL=0x3F;
                            } // init

                            حالا چند تا سوال:
                            1)برنامه و شیوه استفاده از پورت سریال درسته؟
                            2)توی دور دوم عملیات رفرش و خوندن که مثلا" دوباره خط 1 رو خوندم اگه از حالت قبل هنوز خط مشغول باشه چطور می تونم این حالت رو با تماس جدید تشخیص بدم؟



                            ممنون اگه پاسخ بدین
                            والا نمیدونم این رو چی کار کردی اما حتما اون مدار کنترل رله میتونه کمکت کنه.... اینم لینکش:

                            http://www.eca.ir/forum2/index.php?topic=36039.0

                            بازم سوالی بود در خدمتم هم استانی :mrgreen:

                            موفق باشید

                            دیدگاه


                              #15
                              پاسخ : دریافت 16 خط تلفن با avr و ذخیره اطلاعات تماس بر روی کامپیوتر

                              سلام به آقای مهری و آقای اسدی
                              من هر طور بود سخت افزارموکامل کردم و الآن از طریق پورت سریال 16 بایت پشت سر هم (برای هر خط یک بایت) اطلاعات میفرستم (با baud rate=9600) حالا می خوام با c# یه دیتا بیسی داشته باشم که "هر خطی که تماسش برقرار می شه و بایتش 255" رو با یه کانتر مشخص کنه .یعنی یه برقراری تماس عدد 1 کنار اون بیاد و روبروش تاریخ و ساعت ویندوز رو در بیاره و همینطور "طول برقراری اینتماس رو" .در آخر ستون هم تعداد کل تماس ها رو بده و از ساعت 12 شب به بعد وارد یه ستون دیگه ای برای روز بعد بشه.
                              ممنون میشم کمکم کنید .در ضمن من تا حالا c# کار نکردم ها.
                              مولای من
                              نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                              یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                              دیدگاه

                              لطفا صبر کنید...
                              X