الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارسل 2 بت بشكل متسلسل.. موضوع يحتاج إلى تفكير؟

مغلق
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته..أما بعد

حياكم شباب..

أحاول البحث حاليا عن أبسط طريقة تساعدني في تكوين الفكرة التي لدي..

والطلب الأساسي هو ارسال بيانات مقدار 2 بت على شكل متسلسل.. :wacko:

وأنا راح أوضح المطلوب بالتفصيل وأتمنى أن توسعوا صدوركم معنا ونبحث سويا عن الحل المناسب :)

المحتويات:

لدي 4 قيم مختلفة.. كل منها يتكون من 4 بت!!

"متكونة وجاهزة كل بت له قيمة"..

وعلى سبيل المثال القيم كالتالي:

قيمة 1 : 0000

قيمة 2 : 1111

قيمة 3 : 0101

قيمة 4 : 1010

ولنقول مثلا أني قمت بتكوين القيم السابقة عن طريق أزرار أو سويتشات..

وأن هذه السويتشات ( كل 4 بت ) يبعد عن الثاني مسافة غير محددة "100 متر أو 500 متر مو ثابت"..

أود بطريقة ما.. أن يصلني رقم متسلسل يحتوي على القيم الـ4 بشكل متتالي..

يعني يكون الناتج كالتالي:

0000111101011010

:)

طبعا المشاكل الموجودة كثير.. وهي على سبيل المثال:

1 - تختلف سرعة وصول المعلومات من نقطة إلى نقطة حسب المسافة!!

ولذلك لا يمكن تحديد سرعة معينة للقارئ!!

2 - كيف أوضح للمستقبل أن هذا هو البداية ( أفكر باستخدام فكرة الـ Flag )

3 - امكانية زيادة عدد القيم ما الرغبة في ايصالها كاملة بشكل متسلسل..

هذي فكرة الموضوع وأتمنى أن تساعدونا في ايجاد طريقة "عملية" لحلها.. حيث تتوفر لدي عدة أفكار سأطرحها في الرد الثاني هنا وأنتظر أفكاركم

شاكرا لكم تعاونكم

أخوكم طالب الخبرة :)

#2

نبدأ الآن بفكرة بسيطة وان شاء الله تسهل العملية للوصول للنتيجة المطلوبة..

بداية أقترح وجود 4 ريجيسترات نوع 4 بت.. من نوع الدخل متسلسل ومتوازي.. والخرج متسلسل فقط..

حيث كل قيمة تتسجل بالريجيستر المرافق لها.. عن طريق الدخل المتوازي..

يعني على سبيل المثال يكون في الريجيستر 1 القيمة : 0000

وكل ريجيستر يحوي القيمة الخاصة به حسب القيم السابق ذكرها في الرد السابق..

وبما أننا نريد القيم بشكل متتالي فالطريقة المنطقية الأولية تكون كالتالي:

أن نتعامل بداية مع الريجيستر 4 ( وهو الأقرب للمستقبل )

حيث نود ارسال القيمة بشكل متتابع من 1 إلى 2 وفي نفس الوقت يكون 2 أرسلها إلى 3 و3 أرسلها إلى 4 و4 أوصلها للمستقبل :)

والطريقة أن أجعل الريجيستر 4 يخرج القيمة على شكل متسلسل إلى المستقبل..

واذا استقبل المستقبل القيمة يرسل اشارة للريجستر 3.. يرسل عندها القيمة إلى الريجستر 4 ومن 4 إلى المستقبل.

وبذلك يكون المستقبل قد استقبل قيمة 4 و 3..

ومن ثم يرسل اشارة للريجستر 2 حتى يرسل معلوماته إلى 3 ومنه إلى 4 ثم إلى المستقبل.. وهكذا!!

هذي فكرة بسيطة للبدء.. وللأسف تواجه مشاكل!

وهي على سبيل المثال الوقت المستغرق من ارسال الامر من المستقبل إلى الريجيستر 2 مثلا في هذا الوقت راح يكون الدخل للمستقبل عبارة عن 0000000000..

وهنا فكرة في استخدام الـFlag وهو عبارة عن قيمة ترسل قبل القيمة الأساسية 4 بت تعرف أنها عبارة عن قيمة جديدة..

يعني أرسل 8 بت عن كل قيمة تحتوي على 4 بت. حيث يكون اول 4 بت من القيمة عبارة عن Flag والباقي للقيمة..

ولكن يوجد مشكلة أيضا.. حيث لم أعرف إلى الآن الطريقة التي أجعل عن طريق الريجيستر يبدأ باخراج القيمة.. يعني ممكن يرسل القيمة 1010 على شكل متسلسل كالتالي:

101010101010101010

وأنا ما أدري وين البداية!!

فلا بد من ايجاد دخل عن طريقه يبدأ بارسال القيمة المتسلسلة.. ولم أجده إلى الآن!!

ومشكلة أخرى ان الطريقة غير عملية.. تاخذ وقت أكثر من اللازم ( عملية ارسال قيمة عند استلام امر .. حيث يكون الخط فاضي حتى يصل الأمر!! )

ولذلك طرحت الموضوع هنا حتى نتناقش في الفكرة ونصل إلى حل مناسب :)

شاكرا لكم تعاونكم :)

أخوكم طالب الخبرة

#3

السلام عليكم ورحمة الله وبركاته ...

توجد عدة نقاط كثيره تغيب عنك يا اخي

1 - أولا سرعة انتقال الاشاره الكهربيه تساوي سرعة الضوء اي تقريبا 300.000 كم / ث , يعني نسبيا المسافه بين السويتشات تكاد تساوي الصفر

2 - يوجد نوعين من الاتصال التسلسلي

أ - اتصال متزامن , وهو ما يحتاج الى خط لنقل البيانات وخط موازي له لنقل نبضات ساعهclock

ب - اتصال غير متزامن , وهو ما لا يحتاج الا الى خط البيانات فقط

اذا كيف يتم ضبط الوقت في هذه الحاله بين المرسل والمستقبل ؟

اولا يتم الاتفاق على معدل نقل بيانات ثابت بين المرسل والمستقبل

ثانيا يتم وضع علامه لبدأ الارسال تسمى Start Bit وعلامه في نهاية الارسال تسمى End Bit

هل هذه الفكره جديده او من وحي الخيال ؟

لا , هذه الطريقه تعمل بها جميع الأجهزة التي تتصل بشكل تسلسلي , مثل مثلا المنفذ التسلسلي في الحاسب , او في الميكروكنترولر او في المودم الخارجي ,.....

يمكنك القرائه عن المنفذ التسلسلي لتستفيد من اسلوب الاتصال , وبالطبع يمكنك استخدام ميكروكنترولر لعملية الاتصال , هو يحتوي على UARTجاهزه للعمل , كل ما تحتاجه ضبط التزامن والباقي عليها , او يمكنك تمثيل الفكره يدويا وهي بسيطه لكنها تحتاج ادوات كثيره , فالأرخص ايتخدام ميكروكنترولر بسيط لهذه الوظيفه.

بعد هذا يأتي دور التنسيق بين المستقبل والأربع سويتشات , وهو اسهل مما تتخيل

كل ما عليك ضبط كل سويتش على رقم معين , مثلا الأول A والثاني B ...

ترسل من القاعده الرقم A فيمنتنع B و C و D عن ارسال البيانات ويرسلها السويتش A

تقوم بحفظها ثم ترسل B ... وهكذا

ارجو أن يكون الموضوع بسيط

اخوك احمد

#4

حياك أخوي Asm4all... وألف شكر على ردك يالغالي!!

وأتمنى أنك تمشي معانا إلى نهاية الموضوع، إلى أن نصل للنتيجة المطلوبة.. اذا ما عليك كلافة طبعا :)

واسمح لي سأضع رقم على كل سؤال في ردي والتي أتمنى أن تتفضل بالاجابة عليها..

الحين بسأل عن أسئلة عامة قبل اكمال الفكرة..

سرعة الاتصال عالية بالفعل.. ولكن اذا استخدمناها لمسافة طويلة راح يكون هناك اختلاف.. صحيح؟ ( 1 )

يعني نقول على مسافة 10 كيلو ( لو افترضنا حتى لو لم أستخدمها ) هل يكون هناك مشكلة؟

خاصة أني أستخدم الأسلاك الصغيرة مثل أسلاك التلفون العادية..

واستفسار آخر.. أنا أحتاج إلى Rebeater لعملية تقوية الاشارة من مسافة إلى أخرى... صحيح؟

يعني لو أردت ارسال اشارة إلى مسافة 10 كيلو.. عن طريق اسلاك عادية مثل اسلاك التلفون.. إلى كم Rebeater أحتاج لتقوية الاشارة وكل كم مسافة؟؟ ( 2 )

الآن انتهينا من الأسئلة العامة... نعود لموضوعنا السابق..

بالنسبة لي أخي الكريم سأجعل جهاز الاستقبال عبارة عن مايكروكنترول.. أما المرسلات فلن أستخدم سوى الدوائر الرقمية العادية...

فالسؤال الآن.. كيف أحدد سرعة ارسال البيانات من الريجيستر ( عن طريق الـCLK ؟؟ ) ( 3 )

والآن راح أوضح لك اللي فهمته..

بداية أجعل جهاز الاستقبال يرسل اشارة إلى الريجيستر رقم 1 ( الأقرب له ) فيرسل الريجيستر رقم 1القيمة التي لديه لجهاز الاستقبال..

وبعد وصولها يرسل جهاز الاستقبال اشارة إلى الريجيستر رقم 2 .. فيرسل الريجيستر رقم 2 القيمة التي لديه لجهاز الاستقبال.. وهكذا!!

صحيح؟ ( 4 )

طيب نغير الوجهة الآن إلى طريقة تحديد رقم لكل سويتش.. "عن طريق الدوائر الرقمية "

أنا لا أود وضع قيمة معينة عند كل سويتش. حيث أود جعلها جميعا متشابهه!

عن طريقة البرمجة يمكن حلها بسهولة ولكن نود استخدام الدوائر الرقمية فقط... وسأوضح فكرتي:

ان أجعل جهاز الاستقبال يرسل اشارة إلى السوتيش رقم 1 ( أقرب سوتيش يستلم الاشارة ).. فيصل الرد منه على جهاز الاستقبال..

الفكرة أن أجعل السويتش 1 بعد ارساله للقيمة التي لديه للمستقبل.. أن يرسل اشارة للجهاز الذي يليه.. وهكذا!!

كلما انتهى جهاز معين من ارسال اشارة يرسل اشارة للجهاز الذي يليه.. ما رأيك؟؟

هل تتوقع أنها فكرة مناسبة.. هل يوجد بديل أسهل مع أني أراها تؤدي المطلوب؟؟ ( 5 )

طيب نغير الوجهة الآن إلى نقطة أخرى..

وهي هل أجعل السويتش رقم 1 يرسل اشارة للسويتش 2 بعد ارساله للقيمة التي لديه؟

أم عند ارسالها ( وهنا سيحدث تعارض حيث ستتشابك المعلومات )!

أم أضع تأخير بسيط للسويتش 1.. وتوضيحه كالتالي:::::::::

عندما يستلم السويتش رقم 1 اشارة من المستقبل.. يقوم بارسال البيانات التي لديه..

وفي نفس الوقت يقوم بعمل Delay لخرج بسيط لديه.. مدته صغيرة جدا ( تضمن وصول القيمة إلى المستقبل قبل ارسال قيمة السويتش 2 حتى لا يحصل تعارض )

هل تنفع؟؟ ( 6 )

وفي المثال السابق أعتقد بوجود مشكلة..

وهي أنه قد لا يتوفر الوقت الكافي للمايكروكنترول ( المستقبل ) لتحليل البيانات.. وأعتقد أنها لها حلين هنا:

1 - زيادة سرعة المايكروكنترول أضعاف سرعة ارسال البيانات.. حيث يتسنى له القيام بالمعالجة..وأتوقع أنه صعب أن يصل لتلك السرعة ولذا الحل مرفوض..

2 - أن لا يرسل السويتش رقم 1 اشارة للسويتش 2 لبدء الارسال.. بل اجعل الاشارة من المستقبل نفسه!!

هل تنفع ( 7 )؟؟

وهنا أتوقع بوجود مشكلة أخرى أيضا..

وهي أني سأحتاج إلى قطع اضافية لتحديد رقم السويتش ( بدلا من أن تكون بشكل تسلسلي )!!!

وفكرتي هنا أني سأضع IC خاص بالجمع مع مقارن!

حيث يرسل المستقبل القيمة القيمة 1 مثلا للسويتش الأول..أقصد هنا 00000001 ( اي طلب ارسال القيمة من السويتش 1 )

والمرة الثانية يرسل القيمة 2.. فتصل للسوتيش 1 كبداية.. وأنا أجعل المقارنة إذا كانت القيمة المرسلة تساوي قيمة السويتش فارسل القيمة.. واذا لا ( كحالتنا هنا ) يرسلها للسوتيش 2.. وهكذا حتى يصل للسويتش الذي يحمل القيمة!!

ولكن هنا أحتاج إلى وضع قيمة على كل سويتش وهي مالا أريده!!

فأفكر بعملية أن أجعل القطع تعرف نفسها.. بحيث أول واحد = 1 .. والثاني يساوي اللي قبله + 1.. والثالث يساوي اللي قبله ( اللي هو 2 ) + 1.. وهكذا!!

وأنا حتى الآن لم أتعمق في الفكرة ولم أصل إلى الطريقة المناسبة لذلك..

هل تتوقع تنفع.. وما هي الطريقة المناسبة لعملها ( 8 )

انتهى

====

اعذرني أخي الكريم Asm4all والاخوان الكرام على الاطالة..

إلى أني وددت أيضا أن أشارك بما لدي.. وأن لا أكون من يسأل فقط!

بل أحاول توضيح ما لدي ونحاول معا الوصول إلى نتيجة مناسبة..

وأتمنى ترد على الأسئلة السابقة..

شاكرا لك تعاونك

أخوك طالب الخبرة :)

#5
اقتباس
سرعة الاتصال عالية بالفعل.. ولكن اذا استخدمناها لمسافة طويلة راح يكون هناك اختلاف.. صحيح؟ ( 1 )

يعني نقول على مسافة 10 كيلو ( لو افترضنا حتى لو لم أستخدمها ) هل يكون هناك مشكلة؟

1 - صحيح

ومسافة 10 كيلو كبيره فعلا , ولكن هل سوف يكون هناك فرق عندك ام لا ؟ تعتمد على معدل نقل البيانات الذي تعمل عليه

فلو تأخذ بالك كما قلت سرعة الضوء تقريبا 300.000 كم / ث وأن تقول مسافة 10 كم يعني تقريبا سيل البيانات سيتاخر 33.33333 * 10^-6 ثانيه , يعني تقريبا 33 ميكروثانيه , فهل انت تعالج الاشاره بهذه السرعه ؟

ومع ذالك لا توجد أي مشكله فنحن اتفقنا انه هناك نظام للاتصال بغض النظر عن المسافات و فلا يمكن حكم زمن وصول الاشاره بدقه عن طريق المسافه لأسباب كثيره , لذلك وضعت طريقة التزامن بين المرسل والمستقبل

اقتباس
خاصة أني أستخدم الأسلاك الصغيرة مثل أسلاك التلفون العادية..

لا علاقه لهذا بسرعة الالكترونيات في الموصل , السرعه ثابته وتساوي سرعة الضوء , فقط التاثير على شدة التيار بسبب مقاومة السلك

اقتباس
واستفسار آخر.. أنا أحتاج إلى Rebeater لعملية تقوية الاشارة من مسافة إلى أخرى... صحيح؟

يعني لو أردت ارسال اشارة إلى مسافة 10 كيلو.. عن طريق اسلاك عادية مثل اسلاك التلفون.. إلى كم Rebeater أحتاج لتقوية الاشارة وكل كم مسافة؟؟ ( 2

حسب نوع السلك , حسب المسافه , حسب قيمة فرق الجهد المستخدمه للاتصال , حسب طريقة الارسال والاستقبال وطبيعة القطع المستخدمه لذالك.

فمثلا لو ناوي تستخدم كما تقول اسلاك التليفون فعليك بقياس مقاومة السلك و طبعا تعرف الحد القصى للتيار الذي يسمح به المرسل والمستقبل , ومن هنا تستطيع أن تحسب فرق الجهد بين طرفي السلك , و بعد طرح هذه القيمه من الجهد المرسل تعرف قيمة الجهد المستقبل فاذا كان ماذال يحافظ على القيم المنطقيه فلن تحتاج الى Rebeater

اما اذا وجدت الاشاره المستقبله لا تميز بين الصفر والواحد فانك تحتاج الى Rebeater ولتحسب المسافه القصوى بين الـ Rebeater والمصدر عليك بتحديد قيمة الفولت الأقصى على طرفي السلك , وقسمته على التيار المار فيعطيك مقاومة السلك , تقسم مقاومة السلك على مقومة وحدة الأطوال ( 1 متر) فيعطيك طول السلك المسموح به .

نصيحه في المستقبل أن يكون من نوع CMOS وليس من نوع TTL لن الأول لا يسمح تقريبا بمرور تيار لذالك فرق الجهد يبقى كما هو الى ان يصل الى المستقبل

اقتباس
الآن انتهينا من الأسئلة العامة... نعود لموضوعنا السابق..

بالنسبة لي أخي الكريم سأجعل جهاز الاستقبال عبارة عن مايكروكنترول.. أما المرسلات فلن أستخدم سوى الدوائر الرقمية العادية...

فالسؤال الآن.. كيف أحدد سرعة ارسال البيانات من الريجيستر ( عن طريق الـCLK ؟؟ ) ( 3 )

أولا احب ان أعرف هل فهمت ما أعنيه بالمشاركه السابقه ؟

هل فهمت الاتصال التسلسلي الغير متزامن وكيفية عمله ؟

لأنه على ضوء فهمك لهذا المعنى يمكن حل موضوعك بصوره علميه , دون الدخول في ابداعات جديده تكلفتها 10 اضعاف الطرق الاعتياديه , وارجوا ان لا تقولي مش مهم التكلفه انا باتعلم و لأن معنى الهندسه هو الحصول على اعلى استفاده ممكنه باقل تكلفه ممكنه وليس العكس

سوف استكمل بعد معرفة أي المعلومات وصلتك صحيحه وايها لم تصلك

أخوك أحمد

#6

حياك أخوي Asm4all ومشكور يالغالي على ردك..

بالنسبة للتصال المتزامن والغير متزامن راح أوض لك اللي فهمته:

1 - الاتصال المتزامن:

أن لا يرسل السويتش أي قيمة حتى يصله أمر بذلك.. وهو الأمر الذي يفتح له المجال بالارسال ويقفله على السويتشات الأخرى ( يكون الخط فاضي له )

2 - الاتصال غير المتزامن:

كل سويتش يرسل قيمته بشكل مستمر.. وهنا لا أعلم كيف يتم التفريق + منع خلل اختلاط البيانات معا !!

بالنسبة لحساب المسافة المطلوب استخدام الـReabeater فيها.. للأسف ليست لدي القيم الآن ولكن سوف أحسبها بعد الانتهاء من العملية هنا..

وعلى كل .. بشكل مبدئي.. هل أحتاج إلى Rebeater تقريب كل ما يقارب 1 كيلو متر.. أقل او أكثر؟

واعذرني أخي الكريم لم أفهم المقصد من:

اقتباس
نصيحه في المستقبل أن يكون من نوع CMOS وليس من نوع TTL لن الأول لا يسمح تقريبا بمرور تيار لذالك فرق الجهد يبقى كما هو الى ان يصل الى المستقبل

هل مرور التيار مع فرق الجهد يقوم باضعافه؟

وعلى فكرة.. كم الامبير اللازم للتعامل مع الدوائر الرقمية سواء TTL أو CMOS

أما عن سرعة معالجة البيانات.. بالنسبة لي سأجعل مايكروكنترول يقوم بهذه المهمة..

وعلى أقل أريده أن يقوم باستلام ومعالجة 10 قيم من الريجسترات في أقل من ثانية..

وعلى فكرة.. بالنسبة لعملية ارسال القيم أفضّل لو تكون عن طريق سلك واحد.. سواء استقبال الأمر أو البدء بالارسال..

مع انه يمكن استخدام خط آخر اذا تطلب الأمر..

وننتظر ردك على الاستفسارات السابقة..

وأنا إلى أن يصلني رد سأبحث أكثر عن الـCOMS

شاكرا لك تعاونك أخي الكريم

أخوك طالب الخبرة :)

#7

حياك أخوي Asm4all.. قرات أكثر عن الفروق بين الـTTL والـCMOS

واسنتجت أن من أهم النقاط هو استخدام الـCMOS مقدار ضئيل جدا من القدرة.. ما يقارب 1nW !!

وهو مناسب جدا بالطبع!

بالاضافة أنه كان فيه عيب هو البطيء في المعالجة.. في سلسلة 4000.. إلا أن هذه النقطة تم التغلب عليها في السلاسل التي تليها والمتطورة منها مثل 74HC Series.. والتي تعتبر سلسلة High Speed CMOS Logic Family

وعلى كل هي التي سآخذ منها الريجيستر المطلوب.. ينفع :)

وعلى فكرة.. عندي استفسار مهم الآن..

لو افترضنا أن لدي منبع 12 فولت قدرته 100 ميلي أمبير..

هل يمكنني عن طريقة تغذية 10 ريجيسترات من النوع السابق؟ 20؟ إلى أي حد؟

وسأحاول البحث أكثر إلى أن يصل رد :)

شاكرا لك تعاونك

أخوك طالب الخبرة

#8

السلام عليكم ورحمة الله وبركاته ...

اقتباس
بالنسبة للتصال المتزامن والغير متزامن راح أوض لك اللي فهمته:

1 - الاتصال المتزامن:

أن لا يرسل السويتش أي قيمة حتى يصله أمر بذلك.. وهو الأمر الذي يفتح له المجال بالارسال ويقفله على السويتشات الأخرى ( يكون الخط فاضي له )

2 - الاتصال غير المتزامن:

كل سويتش يرسل قيمته بشكل مستمر.. وهنا لا أعلم كيف يتم التفريق + منع خلل اختلاط البيانات معا !!

للأسف فهمت خطأ :wacko:

يمكنك فهم التعريف من هنا

اقتباس
بالنسبة لحساب المسافة المطلوب استخدام الـReabeater فيها.. للأسف ليست لدي القيم الآن ولكن سوف أحسبها بعد الانتهاء من العملية هنا..

وعلى كل .. بشكل مبدئي.. هل أحتاج إلى Rebeater تقريب كل ما يقارب 1 كيلو متر.. أقل او أكثر؟

يا أخي نفسي أعرف مين دخل في دماغك انك محتاج Rebeater ?? :blink:

أوفر عليك ده كله , مقاومة المتر تقريبا 0.25 اوم يعني مقاومة الكيلو متر 250 اوم , يعني لو التيار اللي بيمر 1 ملي أمبير يبقى فرق الجهد بين طرفي سلك بطول 1 كيلو متر يساوي 0.25 فولت يعني الاشاره حتوصل عال العال حتى لو بتستخدم TTL

عموما أنا نصحتك بال CMOS , و في نوعيه أفضل اسمها BiCMOS ودي لو خليت المسافه 100 كيلو فانت مش حتحتاج لا Rebeater ولا يحزنون :lol:

شيل حكاية الــ Rebeater دي من دماغك خالص

ولو عايز نوع تاني ممكن توصل بيه لغاية اوروبا ( مبالغه طبعا :lol: ) دون فقدان الاشاره و في نوع اسمه HTL او High - Thershold Logic وده زي ما باين من اسمه يوجد فرق كبير بين الصفر والواحد المنطقي

هذا النوع يحتاج تغذيه 15 فولت أقل قيمه تمثل له كدخل للواحد المنطقي هي 7 فولت , اقل من هذا يعتبر صفر منطقيا

اهم من كل هذا طريقة التصميم الداخلي حيث يأخذ المدخلات على باعث (Emmeter) الترانزيستور ليس قاعدته (Base)

هذه العائله تحمل الرقم MC660 وهي من انتاج شركة موتورولا

تعمل عند سرعة 2 ميجا , ممانعتها للتشويش ممتازه مقارنة بغيرها من جميع العائلات , تستطيع الدائره الواحده تغذية دخل لعشرة دوائر من نفس العائلة على التوازي

تستهلك فقط 28 ملي واط

مقاومة الخرج في حالة الصفر المنطقي 25 اوم , وفي حالة الواحد المنطقي 1500 اوم

لك الاختيار بين النواع حسب احتياجاتك الخاصه والتكلفه المحدده للتصميم كله

اقتباس
هل مرور التيار مع فرق الجهد يقوم باضعافه؟

ماذا تقصد ؟؟؟؟؟

ما اقصده بمرور التيار وتأثيره , انه عند مرور تيار في الموصل الذي يحمل مقومه فانه يتولد فرق في الجهد على طرفي السلك اي انه يصل الى المستقبل فرق جهد اقل من الجهد المرسل

طبعا الحد من التيار المار يؤدي الى تقليل فرق الجهد على طرفي الموصل ومنه وصول الاشاره كما هي الى المستقبل

واسلم حل لهذا هو استخدام عائلات ال CMOS أو BICMOS لأنها في مرحلة الدخل تشبه دائره مفتوحه اي انه لا يوجد تيار مار ( نظريا) لذلك الاشاره تصل كما ارسلت تماما دون تغيير

أرجوا ان يكون المفهوم ده واضح

بالنسبه للـ TTL اليك ثلاث عائلات منها

74L تستهلك 1 مللي وات

74 تستهلك 10 مللي وات

74H تستهلك 23 مللي وات

أما الــ CMOS

لمعرفة طريقة عمل الـ CMOS انظر هنا

اقتباس
وعلى فكرة.. بالنسبة لعملية ارسال القيم أفضّل لو تكون عن طريق سلك واحد.. سواء استقبال الأمر أو البدء بالارسال..

مع انه يمكن استخدام خط آخر اذا تطلب الأمر..

بالفعل يمكنك هذا وهذه الطريقه تسمى بالــ Half Duplex Serial Communication

اقتباس
واسنتجت أن من أهم النقاط هو استخدام الـCMOS مقدار ضئيل جدا من القدرة.. ما يقارب 1nW !!

وهو مناسب جدا بالطبع!

بالاضافة أنه كان فيه عيب هو البطيء في المعالجة.. في سلسلة 4000.. إلا أن هذه النقطة تم التغلب عليها في السلاسل التي تليها والمتطورة منها مثل 74HC Series.. والتي تعتبر سلسلة High Speed CMOS Logic Family

وعلى كل هي التي سآخذ منها الريجيستر المطلوب.. ينفع

مناسب , وكما سبق وقلت أمامك اكثر من اختيار كلهم ينفعوا لهذه الوظيفه

اقتباس
لو افترضنا أن لدي منبع 12 فولت قدرته 100 ميلي أمبير..

هل يمكنني عن طريقة تغذية 10 ريجيسترات من النوع السابق؟ 20؟ إلى أي حد؟

راجع الداتا شيت الخاصه بالقطع التي تنوي استخدامها

اقتباس
وسأحاول البحث أكثر إلى أن يصل رد

ابحث اكثر في الـ Serial Communication

وبالتوفيق ان شاء الله

أخوك أحمد

#9

حيااااك أخوي Asm4all.. ومشكور ألف شكر على ردك!

بالنسبة للـRebeater.. خلاص ولا يهمك بشيله من راسي ما راح أفكر فكرة :)

ولكن آخر استفسار لها للعلم فقط..

لو استخدمنا CMOS ما سلك طويل.. ما هي أعلى مسافة ممكن توصلها الاشارة :)

وانا حاليا جمعت ارقام القطع التي أحتاجها.. ولم يبقى سوى عدة نقاط

ما قصرت معانا انت والاخوة الكرام قاربت الفكرة على الانتهاء ولله الحمد..

ولكن تكمن لدي مشكلة.. لا نقول مشكلة ولكن أبحث عن أفضل حل!

وهي طريقة ارسال القيم على سلك واحد..

بالنسبة لي استطعت تجميع الفكرة عن طريق سلكين.. وسأشرحها لك:

بداية السلك 1 هو سلك البيانات

السلك 2 هو سلك ارسال الاشارة..

بداية يقوم المايكروكنترول ( الذي يتحكم بجميع القيم هنا ) بارسال اشارة عن طريق السلك 2.. وبما أن الريجسترات متتالية فسيستلمها أول ريجيستر...

وهنا نعمل خطوتين:

الأول : ارسال اشارة للريجيستر لارسال القيمة على السلك رقم 1..

الثانية : عمل Delay للاشارة التي على السلك 2 لأجزاء بسيطة جدا ( تضمن أن البيانات تم ارسالها )..

ثم تنتقل الاشارة إلى الريجيستر الذي يليه.. فيقوم بالخطوتين السابقين.. وهكذا!!!

حتى يصل للريجيستر الأخير فترتد الاشارة على نفس السلك لتوضح للمتحكم أنه تم الانتهاء...

ينفع؟ (h)

وكما تلاحظ أنه من الخطوات السابقة تم استخدام سلكين.. وأنا اود أن أتعلم التفكير بشكل هندسي

ولذلك أحاول الوصول لطريقة تقوم بنفس المهمة عن طريق سلك واحد :)

هل من طريقة تقوم بنفس المهمة "ومن دون قطع اضافية كثيرة"؟

والا سأكتفي بالطريقة السابقة لأنها لا تشكل فرق لدي حاليا :)

وننتظر ردك يالغالي

شاكرا لك تعاونك

واعذرنا على الازعاج :rolleyes:

أخوك طالب الخبرة

#10
اقتباس
لو استخدمنا CMOS ما سلك طويل.. ما هي أعلى مسافة ممكن توصلها الاشارة

يمكن تكون مبالغه مني لو قلتلك ضع السويتش في السعوديه , وانا اشوفلك النتيجه في القاهره :lol: :lol: ومن غير rebeater :lol: :lol: :lol:

تخيل تيار بالنانو امبير يعني

 0.000 000 001 A

في مقاومه تقاس بلكيلو لكل اربعة كيلو متر , يعني بعد 4000 كيلو متر تكون كملت 1 ميجا اوم , وبكده تخسر 1 مللي فولت في الطريق :lol: :lol: :lol:

انسى الــ Rebeater .. انساه (h)

اقتباس
وهي طريقة ارسال القيم على سلك واحد..

الأسهل هي طريقة توصيل ثلاثة اسلاك و واحد للارسال والآخر للاستقبال والثالث لتوحيد الأرضي

وهذه الطريقه تسمى بالــ Full Duplex

والطريقه الثانيه وهي توصيل سلكين فقط واحد للارسال والاستقبال والآخر لتوحيد الأرضي

وهذه الطريقه تسمى بالــ Half Duplex

تحتاج هذه الطريقه الى ضبط بروتوكول للاتصال بين الطرفين , فلا يمكن الارسال والاستقبال في نفس الوقت

لهذا يتم الاتفاق بين الطرفين , بحيث يوجد مدير لعملية الاتصال

مثلا طرفين A, B

الطرف A هو المدير , لذالك الطرف B في حالة استقبال دائما طالما لم تصل له اشاره تفيد انه سوف يرسل الى A

الطرف A هو القائد فمن حقه الارسال في اي وقت , و اذا اراد استقبال اشاره من B فانه يخبر الطرف B أنه جاء دوره للارسال ويتحول الطرف A في هذه اللحظه الى مستقبل

عندما يستلم الطرف B هذه الاشاره من A يقوم بارسال البيانات الى A ويتحول الى مستقبل مره ثانيه , وطبعا عند استلام البيانات عند A يقوم بالتحول الى مرسل مره ثانيه

هل اتضحت الفكره ؟؟

انصحك مره ثانيه بالقراءه عن موضوع الــ Serial Communication

اخوك أحمد

تم تعديل هذه المشاركة بواسطة Asm4all في 29 أغسطس 2005 في 12:54

#11

حيااااك أخوي Asm4all.. ههههههه!!

طيب.. ودك نجرب.. لووووول :lol:

أنا خلاص بستخدم Full Duplex.. وعلى فكرة أن أستخدم 4 أسلاك حاليا!

بالنسبة خصصت للفولت سلك واحد حتى تسنح لي الفرصة لتوصيل عدد كبير من المتحكمات ولضمان استقرار الوضع..

ومشكووور يالغالي وما قصرت.. اتضحت لدي الفكرة بشكل كبير

وراح أبدأ بالبحث أكثر عن القطع اللي راح أستخدمها وطريقة التحكم بها..

واذا ممكن.. لو لقيت سؤال عن نفس الموضوع راح أضعه هنا :D

شاكرا لك تعاونك أخي الكريم

أخوك طالب الخبرة :)

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 10:39

#12

أهلا أخوي Asm4all... عدنا سريعا :)

أخي الكريم هنا ودي أستفسر عن عملية لم أصل لحل لها إلى الآن..

وهي عن نفس الموضوع السابق..

ولكن النقطة هنا عن استخدام ساعة Clock واحدة لكل الريجيسترات.. ممكن :)

بدلا من استخدام clk لكل ريجيستر..

طبعا ممكن وببساطة.. أوصل سلك من الساعة إلى كل الريجسترات ( ممكن صحيح بدون قطع أخرى؟ )

ولكن عندي شرط بسيط لم أستطع التحكم به إلى الآن..

ما أريده هو أن سلسلة الاشارات من الساعة تعمل بشكل مستمر على سلك..

والسلك هذا موصل إلى كل الريجسترات.. ولكن!

عندما يصل السلك ( سلك الساعة ) إلى الريجيستر الأول يتوصل الاشارة إلى مصدرين:

1 - إلى الريجيستر 1

2 - تذهب في اتجاه الريجيستر رقم 2

وهنا في الطريق إلى الريجيستر 2 أود أن أضع Flip Flop أو أي قطعة تعمل لي Delay بسيط "تقريبا 10 اشارات متتالية"

تضمن أن قيمة الريجيستر تم ارسالها.

وهذي ممكن عملها .. ممكن أضع Counter أو يعدها.. ولكن ما أريده بعد الـ 10 اشارات أن يكمل السلك خطه طبيعي ( بالسرعة السابقة له وهي سرعة الساعة )!!!

كيف يمكن ذللك؟؟

أتمنى أن أكون وصلت الفكرة بالشكل المطلوب..

حيث لو وضعت Flip Flop أو أي قطعة أخرى فإذن المشكلة أن تردد الساعة سيتغير.. ومهم جدا أن يبقى التردد على ما هو عليه

حيث المطلووووب هو تأخير بداية دخول الاشارة.. ثم يسمح لي بالاستمرار بشكل عادي!!

ما رأيك أخي الكريم.. هل من طريقة تنفع للقيام بالمهمة السابقة؟

شاكرا لك تعاونك

أخوك طالب الخبرة

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 14:12

#13
اقتباس
وهذي ممكن عملها .. ممكن أضع Counter أو يعدها.. ولكن ما أريده بعد الـ 10 اشارات أن يكمل السلك خطه طبيعي ( بالسرعة السابقة له وهي سرعة الساعة )!!!

كيف يمكن ذللك؟؟

اقتباس
ما رأيك أخي الكريم.. هل من طريقة تنفع للقيام بالمهمة السابقة؟

ان شاء الله الطريقه موجوده , وسهله بس ركز معايا شويه علشان مش معايا برنامج للرسم حاليا

المطلوب

1 - عدد 1 Counter للعد من 1 الى 10

2 - عدد 3 دائرة And بــ 2 input

3 - عدد 1 inverter

التوصيل كما بالرسم اليدوي

29_08_05_05_08_16_1125317296delay1_clk.GIF

في حالة وجود سؤال , اطرحه فانا متواجد

#14

حياك أخوي Asm4all.. ومشكووور على الرد

ههههههه.. بالفعل فكرة ذكية!!

والصورة واضحة آخر حلاوة ما يحتاج!

هي ما أحتاجه بالضبط :)

وحسبت التلكفة للقطعة لا تزيد عن 2 دولار :)

طيب.. هل تتوقع عملية جعل خط خاص للـClock ممتازة.. يعني ما أواجه مشاكل معاها؟

ومع مرور التيار مع الـ And والـ Counter والـ Inv.. أن تتأخر الاشارة؟

وأخيرا..ودي أستفسر عن طريقة استخدام الـ Crystal Oscillator.. حيث أجدد تردداتها مناسبة مثل : 20.000MHz مناسبة مع المايكروكنترول وما القطع الأخرى.

كيف استخدم هذه القطعة..

حيث لها 2 Pin.. أين أقوم بتوصيلها؟

شاكرا لك تعاونك أخي الكريم

فقد انحلت لدي الكثير من النقاط التي قمت بتوضيحها على أكمل وجه :)

أخوك طالب الخبرة

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 15:41

#15

على فكرة.. لاحظت أن أسعار الـ CMOS أرخص من الـ TTL مع أنه تؤدي أداء أفضل منها..

ما هو السبب في رأيك :unsure:

أخوك طااالب الخبرة (h)

#16
اقتباس
طيب.. هل تتوقع عملية جعل خط خاص للـClock ممتازة.. يعني ما أواجه مشاكل معاها؟

ومع مرور التيار مع الـ And والـ Counter والـ Inv.. أن تتأخر الاشارة؟

الفكره جيده للتزامن , لا توجد مشاكل ان شاء الله , ولكن لا تتسرع في تنفيذ الدائره قبل عمل محاكاه لها على الكمبيوتر لترى النتيجه وتختبر تصميماتك

ولا داعي للقلق من نقطة التاخير هذه , ولتعلم ان الكمبيوتر نفسه يعمل بأساليب متشابهه

اقتباس
وأخيرا..ودي أستفسر عن طريقة استخدام الـ Crystal Oscillator.. حيث أجدد تردداتها مناسبة مثل : 20.000MHz مناسبة مع المايكروكنترول وما القطع الأخرى.

كيف استخدم هذه القطعة..

حيث لها 2 Pin.. أين أقوم بتوصيلها؟

يوجد في الميكروكنترولر قدمان لتوصيل الـ Crystal بهما , تعرفهما من الداتا شيت الخاصه بالميكروكنترولر

اقتباس
على فكرة.. لاحظت أن أسعار الـ CMOS أرخص من الـ TTL مع أنه تؤدي أداء أفضل منها..

ما هو السبب في رأيك

صناعة الـ CMOS غير مكلفه مثل الــ TTL وهذا تراه في التصميم الداخلي للدوائر المتكامله , وفي طريقة ال تصنيع نفسها

يمكنك البحث في جووجل لمعلومات اكثر عن صناعة النوعين

ويمكن المصنع بتاع الــ CMOS اهبل وبيبيع بخساره :lol: :lol: :lol:

#17

حياك أخوي Asm4all... بشرنا عنك :)

اقتباس
ويمكن المصنع بتاع الــ CMOS اهبل وبيبيع بخساره

هههههه.. يمكن ليش لا :lol:

اقتباس
الفكره جيده للتزامن , لا توجد مشاكل ان شاء الله , ولكن لا تتسرع في تنفيذ الدائره قبل عمل محاكاه لها على الكمبيوتر لترى النتيجه وتختبر تصميماتك

ولا داعي للقلق من نقطة التاخير هذه , ولتعلم ان الكمبيوتر نفسه يعمل بأساليب متشابهه

ريحتني كذا.. :)

وأنا راح أجرب على الكمبيوتر أكيد!

بالنسبة للكرستال.. ممتاز..

ولكن أود توصيله إلى القطع الأخرى مثل "الريجيستر" أو حتى الدارة السابقة "دارة التأخير"... فكيف يمكن ذلك؟

حيث أجعل سرعة الارسال مساوية لسرعة الاستقبال..

وعلى فكرة.. أنا انتهيت تقريبا مع تجربة الريجيستر.. ولكن بقي مشكلة طريقة توصيل الساعة إليه..

كيف أقوم بتوصيل الكريستال السابق الذكر مع الريجيستر ( على سبيل المثال اللي استخدمه 74HC165 )

وننتظر ردك يالغالي

أخوك طالب الخبرة B)

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 17:06

#18

في الحقيقه لم اقم بتوصيلها من قبل مع دوائر سوى الميكروكنترولر ومستقبل نغمات ال DTMF

#19

حياك Asm4all..

اممم.. ما رأيك اذا؟

هل من طريقة.. حيث أود استخدام نفس الساعة للريجيستر والمايكروكنترول في نفس الوقت!!

أنا سأبحث عن الموضوع أكثر.. ولكن خلال ذلك:

هل من ساعات أخرى تؤدي نفس المهمة حيث أستطيع استعمالها مع المايكروكنترول والريجيستر؟

وعلى فكرة.. ما هي طريقة توصيل الـ Clock للريجيستر؟

أخوووك طالب الخبرة

#20

طبعا انت تعرف التايمر , أو مولد النبضات 555

هنا معلومات عنه

بتظبطه على التردد اللي انت عاوزه وتاخد الخرج منها على clock الريجيستر عدل

تم تعديل هذه المشاركة بواسطة Asm4all في 29 أغسطس 2005 في 17:34

#21

حياك Asm4all....

ولكن.. الي أعرفه أن المؤقت 555 غير دقيق!!

وأنا إلى الآن لا أعلم المعنى من غير دقيق ( سبق وقرأتها عن هذا المؤقت ).. وهي واحد من اثنين :

1 - لا يمكن انتاج نبضات بقيمة دقيقة جدا .. يعني لو نبغى نبضة واحدة في الثانية ينتج على سبيل المثال : 0.999 نبضة في الثانية!! ( وهذا ما أتمناه :) )

2 - أن النبضات لا تكون ثابتة في القيمة.. يعني نبضة تكون بسرعة 0.999 في الثانية... والأخرى 0.998 ( وهذا ما لا أتمناه :( )

أي من السابق صحيح؟

وهل من طريقة لتوصيله على المايكروكنترول؟؟؟؟؟

وعلى فكرة.. هل يمكن عن طريق الـ 555 انتاج تردد عالي السرعة نسبيا ( مثل 20MHz )؟

وأنا سأتابع الصفحة المرفقة مع أني أشاهد الكثير من التصاميم فيها.. سأحاول تتبعها الآن :)

وننتظر ردك

أخوك طالب الخبرة :)

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 17:53

#22
اقتباس
ولكن.. الي أعرفه أن المؤقت 555 غير دقيق!!

وأنا إلى الآن لا أعلم المعنى من غير دقيق ( سبق وقرأتها عن هذا المؤقت ).. وهي واحد من اثنين :

1 - لا يمكن انتاج نبضات بقيمة دقيقة جدا .. يعني لو نبغى نبضة واحدة في الثانية ينتج على سبيل المثال : 0.999 نبضة في الثانية!! ( وهذا ما أتمناه  )

2 - أن النبضات لا تكون ثابتة في القيمة.. يعني نبضة تكون بسرعة 0.999 في الثانية... والأخرى 0.998 ( وهذا ما لا أتمناه  )

أي من السابق صحيح؟

احتمال الاولى هي الصحيحه وهذا بسبب صعوبة ضبط المقاومات المطلوبه للزمن المطلوب

ولكن ببعض التدقيق في القيم وباستخدام مقاومات متغيره وضبطها يدويا بدقه يمكن الحصول على التردد المطلوب

ولكن الرأي الثاني لا يوجد به شيء من الصحه

اقتباس
وهل من طريقة لتوصيله على المايكروكنترول؟؟؟؟؟

06_09_05_07_09_27_1126015767xtl.JPG

و من قبل رأيت توصيل الميكروكنترولر مع مقاومه ومكثف كمصدر نبضات ,لكن الأدق استخدام الكريستال

اما عن استخدام 555 فلا اعتقد ان هناك مانع ولكن لا اعرف كيف , لا استخدمها

اقتباس
وعلى فكرة.. هل يمكن عن طريق الـ 555 انتاج تردد عالي السرعة نسبيا ( مثل 20MHz )؟

لماذا, اذا كانت سرعة الاستجابه اصلا للدوائر لا تصل الا الى 3 ميجا هيرتز

عموما لن تمانع ولكن احسب قيم المقاومات والمكثفات المطلوبه

تم تعديل هذه المشاركة بواسطة Asm4all في 6 سبتمبر 2005 في 17:03

#23

حياك أخوي Asm4all.. ومشكور على الرد!!

ممتاز اذا.. سأبحث أكثر عن استخدام الـ 555 بدلا من الكريستال ( وعن الكريستال أيضا )!!

أما عن سرعة استجابة الدوائر.. فهذه مشكلة!!

فلا بد أن أضبط سرعة المتحكم مع سرعة الريجسترات والقطع الأخرى حتى تصل القيم التسلسلية بشكل صحيح..

اذا سأقلل الفيمة... أعتقد 2 ميجا هيرتز مناسب..

وعلى فكرة.. الآن واجهتني مشكلة غريبة!

أنا أستخدم حاليا برنامج Circuit Maker للمحاكاة الرقمية.. وقاعد أجرب أعمل على الـCounter 7493.. وللأسف لم أجد نتيجة!

أنا قبلها عملت محاكاة للريجيستر.. وما كان يعطيني نتيجة قلت يمكن عندي خطأ في التصميم وقاعد أبحث الآن..

والـ Counter نفس المشكلة.. ودي أتأكد أين الخلل..

ملاحظة : "السويتش المستخدم في الدارة بدل الساعة للتجربة.. حيث أقوم بالضغط عليه عدة مرات لارسال النبضات "..

وهذي هي صورة الدارة :

29_08_05_09_14_46_11253320867493gif.GIF

واعذرنا على الازعاج :wacko:

أخوك طالب الخبرة

تم تعديل هذه المشاركة بواسطة طالب الخبرة في 29 أغسطس 2005 في 19:08

#24

أستفسر عن طريقة استخدام الـ Crystal Oscillator.. حيث أجدد تردداتها مناسبة مثل : 20.000MHz

شوف الداتا شيت و شوف اقصي مذبذب ...

و هتلاقي طرفين في الميكرو غالباً xtal1,xtal2 وصلها بالكريستال و غالباً البعض يستخدم مكثف 0,1 ميكرو بالتوازي معها ...

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#25
اقتباس
أنا أستخدم حاليا برنامج Circuit Maker للمحاكاة الرقمية.. وقاعد أجرب أعمل على الـCounter 7493.. وللأسف لم أجد نتيجة!

أنا قبلها عملت محاكاة للريجيستر.. وما كان يعطيني نتيجة قلت يمكن عندي خطأ في التصميم وقاعد أبحث الآن..

والـ Counter نفس المشكلة.. ودي أتأكد أين الخلل..

يمكنك استخدام البرنامح الشهير EWB , فهو سهل الاستخدام , وشكل القطع كما بالواقع

بالنسبه للدائره 7493 فالتوصي لها صحيح كما بالشكل و والصوره توضح اثناء العمل

29_08_05_07_01_02_11253672627493.GIF

ولكن انصح بالدائره 74393 , فهي اسهل في التوصيل كما انها تحتوي على عدادان في القطعه الواحده , والأهم انا تحتوي على Clear لتصفير العداد قبل الارسال

29_08_05_07_03_46_112536742674393.GIF

على فكره نسخت البرنامج هلى الهارد مخصوص علشان ارسملك الرسمتين دول :lol: :lol:

تم تعديل هذه المشاركة بواسطة Asm4all في 30 أغسطس 2005 في 04:59

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…